浅谈kotlin在安卓上的使用体验,以及java和kotlin不同之处帮助大家快速入坑

不知不觉用kt开发安卓已经两年多了,在此分享一下自己的经验。个人觉得使用kt开发安卓还是比使用java更加的方便推荐尝试一下。
下面为是我认为kotlin在安卓开发的优势

  1. 减少大量的findviewbyid()(提高编码效率)
  2. 更精简的lambda表达式 (使代码看起来更简洁)
  3. 强大的when语句(可使用变量作为匹配项),可带返回值
  4. 空安全机制(减少各种空指针异常,减少繁琐的空判断)
  5. 智能转换机制 (提高编码效率)
  6. 丰富的扩展函数(提高编码效率)
  7. Dataclass
  8. 内联函数 (提高性能)
二、java与kotlin不同之处

1.Kotlin 声明的变量 使用 统一使用 varval(相当于java fanal) 声明只读常量,方式为 var/ val 变量名:变量类型[?](是否可空)在kotlin中 会给属性默认生成get set 在使用kt对象.属性时实际会调用kotlin的get和set方法(注意:当变量声明为private时 生成的get set方法也为private所以外部无法调用)

2.kotlin 无基本数据类型,一切皆对象 也没有static如需使用java中一样的静态类 则使用 object,使用匿名内部类时也需要使用object 关键字声明

3.kolin 方法 使用fun 关键字声明 格式为 fun funName(var param):返回值。 构造方法使用constructor 声明。Kotlin允许给参数默认值如何

【浅谈kotlin在安卓上的使用体验,以及java和kotlin不同之处帮助大家快速入坑】4.对象使用class声明 并默认为不可继承如何需要继承则需要open关键字作为修饰
data class 为对应的为java的bean类 自动从写了toString. Equals, copy等方法

5.扩展。为java中没有的特性可分为扩展函数和扩展属性。如对textview扩展一个方法判断textview的文本是否为空:
fun TextView.isEmpty(): Boolean{
return TextUtils.isEmpty(this.text.toString())
}
对textView扩展属性:
var TextView.mvalue:String
get() = this.text.toString()
set(value){
this.text=value
}

6 when与switch在switch中case 语句只能使用常量。这导致在lib中不能使用控件id作为分支。when 可以使用变量,表达式,区间等作为分支,并且when语句支持返回值(kt的if语句也支持)

7.operator重载运算操作符。如给opint类+=操作符

    推荐阅读