简介
Kotlin 是一个用于现代多平台应用的静态编程语言,由JetBrains公司开发。
Kotlin 在设计时就考虑了 Java 互操作性,因此 Kotlin 完全兼容 Java 代码;
但是在使用过程中还是有可能会出现一些小的问题。
Java调用Kotlin方法传入空对象
如果Kotlin文件声明的方法的参数列表为非空类型,在纯 Kotlin 代码的调用,编译器会帮你完成空检测。
1 | // Hello.kt |
但是当 Java 调用 Kotlin 时则不一样,编译器无法帮你识别 Java 传递的参数是否是非空类型。
1 | //Hello2.java |
以上代码在编译时不会出错,但运行时则会报如下错误。
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method Foo$Companion.bar, parameter name
Kotlin 在声明供 Java 调用的方法时参数列表应该声明为可空类型。
1 | // Hello.kt |