最近了解了下 Kotlin ,其中的很多语法糖很有意思,并且可以与 Java 无缝兼容。故尝试在一个 SpringBoot 工程上将部分类修改为 Kotlin ,下面记录了由 Java 改为 Kotlin 过程中遇到的坑和 Kotlin 的优缺点。
环境和版本
- Eclipse Oxygen
- JDK 8
- Kotlin 1.3.0
- Gradle 4.6
- SpringCloud Greenwich.M1
- SpringBoot 2.1.0.RELEASE
工程结构修改
- 安装Eclipse的Kotlin插件:在Marketplace里搜索Kotlin安装,当前版本为0.88
- 修改build.gradle,在原有基础上添加(代码只含添加部分)
buildscript {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
dependencies {
implementation('com.fasterxml.jackson.module:jackson-module-kotlin')
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
}
sourceSets {
main {
java {
srcDirs = ['src/main/java', 'src/main/kotlin']
}
}
}
//应该可省略
compileKotlin {
kotlinOptions {
freeCompilerArgs = ["-Xjsr305=strict"]
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
freeCompilerArgs = ["-Xjsr305=strict"]
jvmTarget = "1.8"
}
}
- 原有SourceFolder “srcmainjava”,添加一个 “srcmainkotlin” 用于单独存放Kotlin代码
- 刷新gradle
- Eclipse设置:Windows-preferences-Kotlin-Compiler
- 切换为Kotlin透视图
代码转换
自动转换
- 在kotlin文件夹下创建与java相同的包;
- 将需要转换的java类文件拷贝到kotlin包下;
- 在java类文件上右键,点击Convert Java to Kotlin(安装kotlin插件后);
- 进行查缺补漏,借此巩固自己学到的Kotlin语法。
手动修改
自动转换后还有部分代码报错,需要手动调整一下:
- 数组自动转换
//java
@RequestMapping(value = "/app", method = RequestMethod.GET)
//kotlin
@RequestMapping(value = ["/app"], method = [RequestMethod.GET])
- 自动注入
//java
@Autowired
private AppService appService;
//kotlin
@Autowired
lateinit var appService: AppService
- 方法函数
//java
@RequestMapping("/slider")
public List< String > slider(){
return appService.getHomeSliders();
}
//kotlin
@RequestMapping("/slider")
fun slider() = appService.getHomeSliders()
- 其他
- Kotlin中默认对象不能为null,? 表示当前对象可以为null
- !! 表示当前对象不为null的情况下执行
- 单表达式函数:当函数返回单个表达式时,可以省略花括号并且在 = 符号之后指定代码体即可
- 隐式返回类型:当返回值类型可由编译器推断时,显式声明返回类型可省略
小结
初步尝试使用了Kotlin,总体上还是十分欣喜的,原因如下:
- 配置及使用方便,只需引用几个gradle插件和jar包,然后简单地配置下eclipse即可;
- 与Java无缝集成,上手容易,在熟悉的语法基础上极大的简化了其代码,真的是Better Java;
- 空指针安全。
大家闲来无事可以了解一下。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
JAVA
+关注
关注
19文章
2904浏览量
102995 -
环境
+关注
关注
0文章
124浏览量
16128 -
代码
+关注
关注
30文章
4556浏览量
66784 -
kotlin
+关注
关注
0文章
60浏览量
4144 -
SpringBoot
+关注
关注
0文章
172浏览量
106
发布评论请先 登录
相关推荐
Java学习过程中需要注意的25个要点
想要精通Java,成为Java高手,需要不断的学习和积累。本文给出了Java学习过程中需要注意的25个学习目标,希望可以给您带来帮助。
发表于 07-11 07:49
IAP功能实现过程遇到的坑
花了四天时间才把IAP功能做好。其中也遇到许多的坑,这次把这次IAP功能实现过程遇到的坑把它分享出来。一开始做iap的时候也是先从网上看别人
发表于 08-05 07:51
M1 Mac开发Android遇到的坑与解决方法
M1 Mac 开发Android遇到的坑点与我的解决方法前言开发工具Q:Android studio能用吗?Q:IDEA好用吗?Q:IDEA编译不成功,怎么办?Q:IDEA运行项目到手机不成功
发表于 09-15 07:44
平衡小车移植过程中趟过的坑
最近在研究平衡小车,在TB上买了一个小车套件,源代码是用的stm32的3.5库,自己打算移植到hal库上面去,顺便深入了解一下平衡小车控制原理。下面就说说移植过程中趟过的坑,1.匿名科创地面站本是
发表于 09-17 06:40
在嵌入式linux开发过程中遇到的坑
目标 博文旨在总结自己在嵌入式linux开发过程中遇到的坑⛈、一些小知识点的汇总。☔等哪天发展到远离代码了,还能回一下当年的英姿。
发表于 11-05 09:06
学习MSP430过程中遇到的问题分享
MSP430学习心得当初英国留学,第一次接触到MSP430这种类型的单片机,学习过程中遇到了各种问题,现在回想起来,如果当初有一位引路人的话,我当年的学习过程也许会轻松许多吧。遥记得EE312这门课
发表于 11-29 07:15
记录STM32调试过程中遇到的一些坑
记录STM32调试过程中遇到的一些坑假装这是一个目录?零、 CubeMX1.发现新大陆一、串口与DMA1.配置与使用2.串口中断与DMA3.串口中断异常二、PWM三、FDCAN1.CAN波特率
发表于 12-06 06:40
求助,官方出的MESH DEMO怎么改成了Kotlin和JAVA混和了?
对于我们大多数搞偏硬件的,一般都是用C的,对于C++,JAVA有天生的熟悉感,稍微学习一下,在官方的基础上搞个东西难度不大,但是现在这个Kotlin是个什么鬼?语法规则完全不同了,连分号都不
发表于 09-21 07:31
分析Kotlin和Java EE的关系
了java老标准设置的所有障碍。在此过程中,新时代语言Kotlin特定的构造,使的代码更简洁而安全。 如果您没有阅读本系列的前两部分,可以在这里找到: Kotlin和
发表于 09-28 17:12
•0次下载
分析微波器件薄膜化过程中所遇到的技术难点
微波器件的薄膜化过程中会遇到很多的技术难点,本文以环形器薄膜化过程中遇到的技术难点为例来分析微波器件薄膜化过程中所
发表于 03-18 14:38
•1028次阅读
使用Kotlin替代Java重构AOSP应用
两年前,Android 开源项目 (AOSP) 应用团队开始使用 Kotlin 替代 Java 重构 AOSP 应用。之所以重构主要有两个原因: 一是确保 AOSP 应用能够遵循 Android
将其Android应用的Java代码迁移到Kotlin
Meta 称,迁移到 Kotlin 既简单又非常复杂。因为 Kotlin 的设计允许从 Java 进行简单的转换,并具有经过深思熟虑的互操作性。这种设计使 JetBrains 能够为开发人员社区提供
评论