- Kotlin可空类型
为了避免Null Pointer Exception,java8中,我们可以使用Optional类型来表达可空的类型。
public static void main(String[] args) {
System.out.println(strLength(Optional.of("abc")));
System.out.println(strLength(Optional.ofNullable(null)));
}
static Integer strLength(Optional<String> s){
return s.orElse("").length();
}
运行程序结果如下:
但是这样的代码依然不够简洁。Kotlin中使用了Groovy里面的安全操作符,并简化了Optional的使用,直接通过类型T后加?就表达了Optional的意思
fun strLength(s: String?): Int {
return s?.length ?: 0
}
@JvmStatic
fun main(args: Array<String>) {
println(strLength("abc"))
println(strLength(null))
}
相比之下,kotlin是不是简便很多。