当前位置: 首页 > 知识库问答 >
问题:

使用spring boot与Kotlin和Java有什么区别?

左丘季
2023-03-14

使用spring boot与Kotlin和Java有什么区别?

Kotlin是你可以选择用https://start.spring.io启动应用的三种语言之一,所以它得到了spring boot团队的支持。我用它来开发一些微服务,据我所知,最后一切都很好,但我想从其他开发者那里得到一些反馈,因为我试图说服我的新团队在科特林开始我们的新微服务。

赞成的意见:

  • 空安全
  • 更清晰的代码
  • Val超过var

缺点:

  • Mockito对静态编程语言不友好(我切换到mockk)
  • 代码覆盖率并非开箱即用(我们必须开发自己的插件)
  • Java比静态编程语言更快的风险

共有2个答案

巩光誉
2023-03-14

主要的区别是:使用Kotlin,你用Kotlin编程……使用Java,你用Java编程。Spring使用了Kotlin独有的一些语言特性来简化某些操作,但我认为您不会因为这些额外的好处而选择一种语言。在大多数情况下,没有区别。Spring也支持这两种语言。

更新:我想我应该补充一点,Kotlin确实在整个Spring中引入了一些小问题,因为Spring实际上是用Java编写的,最初设计用于通过Java使用。但是,正如Spring和Kotlin的优点一样,这些小缺点也不应该影响你选择使用哪种语言。

我认为你应该问的是“我应该用哪种语言来省略Spring?我的公司正在用 Kotlin 编写新的模块,因为我们认为它是一种比 Java 好得多的语言。但是我们有很多遗留的Java代码,而且我们选择在大多数情况下不在单个模块中混合语言,所以我们仍然用Java编写代码。你必须做出自己的决定。根据语言本身和您现有的代码库,而不是Spring如何使用它来决定要用哪种语言编程。Spring会很好地工作。

有许多文章和博客比较了这两种语言,列出了它们的相对优点和缺点。我建议你阅读所有你能读到的东西。这里没有“正确”的答案。(...这就是为什么我知道这个问题将被关闭为基于意见)。试试科特林。哎呀,试试格鲁维和斯卡拉。为自己“生活”利弊,然后决定什么最适合你。

顺便说一下,你把“Java比Kotlin运行得更快的风险”列为Kotlin的一个缺点。我认为风险在另一个方向。与Kotlin和其他替代语言相比,Java运行非常缓慢。这就是为什么你看到它在追赶...最后,将替代语言中已经存在多年的特性引入到语言中。

程天佑
2023-03-14

由于 Kotlin 只是 Maven 的依赖项和插件(仅此而已!这是一种很好,紧凑,易于摸索的语言,可以删除Java提供的所有语法脂肪(与语法糖相反)。

从5.0.0开始,静态编程语言拥有来自Spring的一流支持,这实际上意味着它在代码正常工作方面具有与Java相同的所有保证。

Kotlin 本身具有大量的互操作性功能,可以顺利地与任何现有的 Java 库集成,这意味着您拥有相同的选择自由。

科特林的Java互操作是惊人的,绝不是喷气大脑的事后想法。因此,Kotlin与Spring配合得很好,Spring为web应用程序提供了许多样板功能,尤其是Spring Boot。

这些是你已经提到的一些观点,但是我仍然有发言权。Kotlin有更紧凑的语法,其类型系统通过空安全、密封类和不可变/可变集合区分允许更健壮的代码,这一起大大减少了任何项目的开发时间。

 类似资料:
  • 本文向大家介绍Kotlin与Scala有什么区别,包括了Kotlin与Scala有什么区别的使用技巧和注意事项,需要的朋友参考一下 Scala比Kotlin更好吗?不...,Kotlin胜过Scala吗?没有... 两种编程语言都有其自身的优势,并且可以用于一组特定的开发。只是有些开发人员认为Java不足以开发他们设计Kotlin的应用程序,而其他开发人员则认为Java库在他们设计Scala时无法

  • 也许给出问题的最好方法是在下面显示代码:

  • 我想了解这两种说法在更深层次上的区别是什么。 即使我能够从其他类中访问这些变量,并且对我来说两者的工作方式相同,但是< code>get()又有什么不同呢?

  • Kotlin中的和有什么区别? 如本链接所述: 只读属性声明的完整语法与可变属性声明的不同之处在于两个方面:它以val而不是var开头,并且不允许setter。 但就在前面有一个使用setter的示例。 为什么我们两者都需要? 这不是Kotlin中变量的重复,与Java的区别:“var”vs.“val”?因为我询问的是与文档中的特定示例相关的疑问,而不仅仅是一般性的疑问。

  • 本文向大家介绍Scala与Java有什么区别?,包括了Scala与Java有什么区别?的使用技巧和注意事项,需要的朋友参考一下 Scala编程有点复杂,它的某些功能很难学习。对于程序员来说,Scala是Java的不错的升级,让我们看看Scala可以做什么?Scala是一种面向对象的编程语言,并且还集成了功能编程语言的功能。那么,让我们看看scala与Java有何不同? Scala和Java之间的区

  • 问题内容: 在线查看职位空缺时,我注意到某些职位需要“核心Java”知识。什么是核心Java,它与Java有何不同? 问题答案: “核心Java”是Sun的术语,用于指 Java SE,标准版 和一组相关技术,例如Java VM,CORBA等。这主要是为了区别于Java ME或Java EE。 还要注意,他们在谈论的是一组库,而不是编程语言。也就是说,无论使用什么库,编写Java的基本方式都不会改