不知不觉用kt开发安卓已经两年多了,在此分享一下自己的经验。个人觉得使用kt开发安卓还是比使用java更加的方便推荐尝试一下。
下面为是我认为kotlin在安卓开发的优势
二、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类+=操作符