-
Android Studio 提供了 Java file to Kotlin file 的工具,在菜单中选择 “Code → Convert Java File to Kotlin File”:
image.png
-
转换过程遇到的问题
image.png
java 声明一个对象时可以不用初始化。但是Kotlin在声明一个对象时候需要初始化,除非上关键字lateinit,延迟初始化,又或者初始化为空等操作。
image.png
//lateinit 允许在构造函数之外初始化非空属性
class Ball(var x: Int, var y: Int, var size: Int, color: Int) {
var direction = intArrayOf(1, 1) //direction modifier (-1,1)
var speed = 10
var paint: Paint
lateinit var oval: RectF
...
- 修改了上述情况,rebuild还会报一些error,因为在重构的过程中不能一蹴而就,应该循序渐进,由简入繁。
因为上述convert 后的kotlin文件会被其他Java文件引用到。所以还需要做如下修改。
- 需要在build.gradle(module) 文件添加 apply plugin: 'kotlin-android'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
- 需要在build.gradle(project) 文件添加 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
buildscript {
ext.kotlin_version = '1.3.20' //Note: 这个版本要与环境中版本相一致。
repositories {
...
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀