我是Kotlin和Anko的初学者。我了解到Kotlin是空安全的,但是下面的代码会导致NullPointerException
,我不知道为什么,有人可以向我解释一下吗?
intent.extras["Key"]?.toString()
textView(intent.extras["Key"]?.toString() ?: "Nothing")
.lparams(wrapContent, wrapContent)
我是Kotlin和Anko的初学者。我了解到Kotlin是空安全的,但是下面的代码会导致NullPointerException
,我不知道为什么,有人可以向我解释一下吗?
intent.extras["Key"]?.toString()
textView(intent.extras["Key"]?.toString() ?: "Nothing")
.lparams(wrapContent, wrapContent)
看来我应该先检查 extras 是否为空。然后我将代码更改为:
intent.extras?.get("key")?.toString()?:"empty"
它工作正常!
这一行:intent.extras["Key"] 不是空安全的!!!
好吧,有很多要评论的……但是首先,您必须首先检查意图是否已传递给您,否则它将为空,因此这里有一个NPE,而且我认为您应该检查是否TextView
为空(尽管我不不要使用 Anko)..
例如:
intent?.extras["Key"]?.toString()?:"empty"
或者
intent?.extras?.get("key")?.toString()?:"empty"
请提供您的异常日志以供进一步调查 (^^) 干杯