我将以下代码翻译成Kotlin:
if (intent.action == SMS_RECEIVED) {
// retrieves a map of extended data from the intent
val dataBundle = intent.extras
if (dataBundle != null) {
val mypdu = dataBundle.get("mypdu")
mypdu.length... (NOT WORKING)
}
}
具体来说,变量mypdu的创建类似于Java:
Object[] mypdu = (Object[]) dataBundle.get("mypdu");
而且我无法将其翻译成Kotlin。我不能使用以下内容:
val mypdu = dataBundle.get("mypdu") as (Object[])
似乎IDE希望我将变量定义为Any,然后无法按我的意愿访问其length属性。
如何将此行翻译成Kotlin?
最佳答案
您可以使用此:
val mypdu = dataBundle.get("mypdu") as Array<Any?>
请注意,我将
Array
的元素标记为Any?
,因为在Java中,我们没有null安全编译器。这样一来,您以后就不会再遇到讨厌的NPE了。另外,要访问数组的长度,请使用
size
属性,如下所示:val length = mypdu.size
关于java - 将Object []转换成Kotlin,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60202197/