Ноль не может быть приведен к непустому типу java.util.HashMap в моем приложении - PullRequest
0 голосов
/ 07 мая 2018
 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 в ненулевой тип java.util.HashMap в com.example.userandro.phonetracker.MainActivity $ refreshUsers $ 1.onDataChange (MainActivity.kt: 87)

мне нужна помощь, пожалуйста

1 Ответ

0 голосов
/ 07 мая 2018

Эта ошибка возникает при попытке привести null к ненулевому типу . Это ошибка во время выполнения в Kotlin. В приведенной ниже строке value равен null, однако указанный тип не может иметь значение null.

val td = dataSnapshot!!.value as HashMap<String,Any>

Если предполагается, что переменная может быть обнуляемой, вы можете вместо этого использовать as? (со знаком вопроса) «безопасный» (обнуляемый) оператор приведения . В случае неудачи результатом будет null, а не исключение.

val td = dataSnapshot!!.value as? HashMap<String,Any>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...