fun refreshUsers() {
val userData = UserData(this)
databaseRef!!.child("User").child(userData.loadPhoneNumber()).child("Finders")
.addValueEventListener(object :
ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot?) {
val td = dataSnapshot!!.value as HashMap<String,Any>
listOfContact.clear()
if (td==null){
listOfContact.add(UserContact("NO_USERS","nothing"))
adapter!!.notifyDataSetChanged()
return
}
for (key in td.keys){
val name = listOfContacts[key]
listOfContact.add(UserContact(name.toString(),key))
}
adapter!!.notifyDataSetChanged()
}
我在 HashMap 中遇到问题,这就是错误:
kotlin.TypeCastException:null 无法转换为非 null 类型 java.util.HashMap 在 com.example.userandro.phonetracker.MainActivity$refreshUsers$1.onDataChange(MainActivity.kt:87)
我需要帮助
最佳答案
尝试将 null
转换为 non-null type 时会发生此错误。这是 Kotlin 中的运行时错误。在下面的行中,value
为 null
,但指定的类型不可为 null。
val td = dataSnapshot!!.value as HashMap<String,Any>
如果希望变量可为空,则可以使用 as?
(带问号)"safe" (nullable) cast operator反而。如果失败,结果将为 null
而不是异常。
val td = dataSnapshot!!.value as? HashMap<String,Any>
关于java - 在我的应用程序中,null 无法转换为非 null 类型 java.util.HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50205065/