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

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

下面为是我认为kotlin在安卓开发的优势

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

 二、java与kotlin不同之处

 

1.Kotlin 声明的变量 使用 统一使用 var     val(相当于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允许给参数默认值如何

 

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类+=操作符

你可能感兴趣的:(an)