在某些转换ArrayList
包含3个元素后,ArrayList
大小最大,然后是3.因此,当使用NullPointerException
圈时,forEach
会出现。
如何避免这种情况?我的意思是没有!=null
检查。
示例:
List<String> busesIdToRemove = driverWrapper.getBusesIdToRemove();
列表包含id,这些实体将被删除。发生错误:
for (String id : busesIdToRemove) {
Long longId = Long.valueOf(id); //here. Because id is null ...
}
但实际上,list只包含非空值的元素。
例如[index,value]。
1,&#34; 41&#34 ;;
4,&#34; 50&#34; ...
调试器中缺少具有索引[0],[2],[3]的元素的信息,并且get(0)
返回null,例如方法。
解决问题:arrayList.removeAll(Collections.singleton(null));
答案 0 :(得分:5)
如果尺寸大于3,则表示您未正确移除元素。将它们设置为null不会删除。
您需要使用arrayList.remove(item)方法。
答案 1 :(得分:0)
从您的null
arrayList
项的单行技术
arrayList.removeAll(Collections.singleton(null));
确保尺寸只看arrayList.size()