我将以下代码翻译成 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/