1.var和val的区别
(1)、 var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和Java中声明变量的方式一样。
(2)、 val是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。
2.类型判断
在java中使用instanceof来判断类型而在Kotlin中是使用is来判断:
if (A is B) {
............
}
3.类型强转
使用as关键字可以实现类型的强转
var object = A as B
4.kotlin默认参数
在Kotlin中,使用默认参数也很简单,在函数定义中直接赋值即可:
fun func(p1: String, p2: String, p3: String = "default") {
// do something
}
上述函数定义中,c 的默认值就是default,可以这样去调用 func(“p1”,“p2”)。同样的,针对构造函数,也可以指定默认值:
class TestDefaultParameters (
val name: String,
val type: String = "default"
){}
那么如果想要在Java中调用kotlin带有默认参数的函数怎么做呢?如果在Java中直接调用func(“p1”,“p2”)编译器会报错,这是需要给kotlin的方法加上Jvm重载的注解就可以了:
@JvmOverloads
fun func(p1: String, p2: String, p3: String = "default") {
// do something
}