我必须使用对象列表而不是对象,如果我使用
,则太多次了MyObj a = null;
a.setParameter = 0;
有效。 但是,如果我使用
List<MyObj> a = null;
MyObj b = getObjectFromSomewhere();
a.add(b);
失败并出现错误:java.lang.NullPointerException?
我怎么看?如果我的新List<MyObj> a
是“null”或者里面没有任何元素?
答案 0 :(得分:6)
列表是容器,您必须将元素放入其中。在放入任何内容之前必须存在该列表(因此您可以使用空列表,注意)。
所以这个:
List<MyObj> a = null;
声明一个指向null的变量 - 而不是实际的容器。尝试:
List<MyObj> a = new ArrayList<>();
(请注意,列表有不同的种类,具有不同的性能特征,以上只是选择用于说明的常用品种)
(为了解决你的第一点re a.setParameter
,我想这是一个静态方法 - 为类定义,而不是类的实例 - 而且令人困惑的是Java会让你通过实例引用它0} p>
答案 1 :(得分:0)
Eclipse允许您将其启动为null,因为Eclipse认为您将在稍后的代码中将对象指向此引用。
所以你有责任在使用任何List方法之前让它引用一个对象。
答案 2 :(得分:-1)
执行此操作List<MyObj> a = null
不会在内存中进行初始化,因此a
指向任何内容
你应该做的是
List<MyObj> a = new ArrayList<>();
a.add(getObjectFromSomewhere());
我怎么看?如果我的新列表a是“null”或没有任何元素 内?
if(a == null){...} // to check if array not initialized
if(a.size() == 0){...} // to check if array have no element
请注意,当a.size()
a
null
将NullPointerException
[...buffer].map(b => b.toString(16))