fre*_*low 3 null nullpointerexception java-interop kotlin java-collections-api
我有点惊讶,以下示例抛出NullPointerException:
fun main(args: Array<String>) {
val hm = HashMap<String, Int>()
hm.put("alice", 42)
val x = hm.get("bob")
println(x) // BOOM
}
Run Code Online (Sandbox Code Playgroud)
我以为NullPointerExceptionKotlin代码中没有s?
如果我使用x可选类型进行注释,则编程将打印null:
fun main(args: Array<String>) {
val hm = HashMap<String, Int>()
hm.put("alice", 42)
val x: Int? = hm.get("bob")
println(x) // null
}
Run Code Online (Sandbox Code Playgroud)
我是否发现了一个特例,或者这是Kotlin/Java互操作的一般问题?
我正在使用带有Kotlin 0.11.91.1插件的IntelliJ IDEA 14.1社区版.
您的变量hm属于类型HashMap,因为这是一个平台类,其方法返回平台类型.科特林自身Map及其subtrait子接口MutableMap但是返回可空类型get().
将您的代码更改为
val hm : MutableMap<String, Int> = HashMap()
Run Code Online (Sandbox Code Playgroud)
它将打印"null".
| 归档时间: |
|
| 查看次数: |
955 次 |
| 最近记录: |