0

我是KotlinAnko的初学者。我了解到Kotlin是空安全的,但是下面的代码会导致NullPointerException,我不知道为什么,有人可以向我解释一下吗?

intent.extras["Key"]?.toString()

textView(intent.extras["Key"]?.toString() ?: "Nothing") 
.lparams(wrapContent, wrapContent)
4

2 回答 2

0

看来我应该先检查 extras 是否为空。然后我将代码更改为:

intent.extras?.get("key")?.toString()?:"empty"

它工作正常!

这一行:intent.extras["Key"] 不是空安全的!!!

于 2018-03-17T08:21:53.077 回答
0

好吧,有很多要评论的……但是首先,您必须首先检查意图是否已传递给您,否则它将为空,因此这里有一个NPE,而且我认为您应该检查是否TextView为空(尽管我不不要使用 Anko)..

例如:

intent?.extras["Key"]?.toString()?:"empty" 

或者

intent?.extras?.get("key")?.toString()?:"empty" 

请提供您的异常日志以供进一步调查 (^^) 干杯

于 2018-03-17T06:10:59.413 回答