Settings 转Kotilin
Model 类: MapCity,CitySearchModel,MapViewModel
Activity类:AboutActivity
工具类:SettingCookie SettingTrackHelper
1.Activity 转Kotilin
Butterknife不识别问题:
以AboutActivity为例:
如:butterknife
@JvmField 注解,将类变量暴露给底层java 库使用
需要使用:
apply plugin:'kotlin-kapt'
kapt "com.jakewharton:butterknife-compiler:${rootProject.ext.butterknifeCompilerVersion}"
Kotilin 调用java函数 异常
compile 'nl.dionsegijn:konfetti:1.1.2'
compile'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.41'
2.Model转Kotilin
静态变量转换
可空变量转换
由于kotilin的空安全判断,默认的成员变量是non-nullable ,但是有时候我们需要使用到nullable 的成员变量,这样就需要在该成员变量之后加?
不需要使用默认的get 和 set 方法变量转换
一个 Kotlin 的类成员变量会被自动生成 getter 和 setter 。有时,这个特性会令人感到比较蛋疼,你想不让它生成 getter ,就需要加个注解:@JvmField。
这样就不会产生 getter 了。这个@JvmField
同时去掉了 getter 和COMPANION
3.工具类转Kotlin
静态函数转换
Kotilin 转java 总结
Kotilin优势:
Kotlin 语言相对 Java 有很多优势,比如官网介绍的简洁、安全
Kotlin 具有现代(也有称下一代的)静态编程语言的很多特点,如类型推断、多范式支持、可空性表达、扩展函数、DSL 支持等。另外对于安卓开发还提供了 Kotlin 安卓扩展和 Anko 库
关于与 Java 互操作,尤其是 Java 调用 Kotlin 是大家普遍觉得坑的地方,除了默认 final 外,还有一个主要原因应该就是名字修饰,解决方式可以按照它修饰后名字去引用,或者在 Kotlin 端使用 @JvmName 注解来生成便于 Java 使用的名字。
必要性:
1.效率
2.简洁
3.APK 大小增加不多