最近了解了下 Kotlin ,其中的很多语法糖很有意思,并且可以与 Java 无缝兼容。故尝试在一个 SpringBoot 工程上将部分类修改为 Kotlin ,下面记录了由 Java 改为 Kotlin 过程中遇到的坑和 Kotlin 的优缺点。
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"
}
}
自动转换后还有部分代码报错,需要手动调整一下:
//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,总体上还是十分欣喜的,原因如下:
大家闲来无事可以了解一下。
全部0条评论
快来发表一下你的评论吧 !