[Kotlin knowledge]Start Covert java file to kotlin file

42 阅读1分钟
  1. Android Studio 提供了 Java file to Kotlin file 的工具,在菜单中选择 “Code → Convert Java File to Kotlin File”:

    image.png

  2. 转换过程遇到的问题

    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
...

  1. 修改了上述情况,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老皮!!!欢迎大家来找我探讨交流👀