drakeet / MultiType

Flexible multiple types for Android RecyclerView.
Apache License 2.0
5.76k stars 749 forks source link

Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference #274

Closed HeJiaomy closed 5 years ago

HeJiaomy commented 5 years ago
Description: 当返回的list集合中,有的对象有值,有的对象为null时,会报下面的错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference at me.drakeet.multitype.MultiTypeAdapter.indexInTypesOf(MultiTypeAdapter.java:339) at me.drakeet.multitype.MultiTypeAdapter.getItemViewType(MultiTypeAdapter.java:207)

drakeet commented 5 years ago

那是因为你传递给 Adapter 的 list 容器中存有 null 对象,这不属于 MultiType 的问题,也就是说,你换用原生 RecyclerView Adapter 同样会遇到 NPE。解决办法:不要给 Adapter 予 null 对象。