初始化对象列表

时间:2014-07-11 19:52:04

标签: java list object

我写了这段代码

List<Object> result = null;

....
Object resultObject =method.invoke(o, "test", "test");
System.out.println(resultObject);
result.add(resultObject);

resultObject包含我期望的结果,但最后一行包含NullpointerException。

4 个答案:

答案 0 :(得分:2)

List<Object> result = null;

变量result现在包含null

result.add(resultObject);

您尝试在add()上致电result,但由于resultnull,则会引发NullPointerException

您应该创建列表。将第一行替换为:

List<Object> result = new ArrayList<Object>();

答案 1 :(得分:0)

将您的代码更改为

List<Object> result = new ArrayList<Object>();

否则resultNULL

答案 2 :(得分:0)

某些实现禁止null元素,有些实现对其元素类型有限制。尝试添加不合格的元素会引发未经检查的异常,通常是NullPointerException或ClassCastException。尝试查询不合格元素的存在可能会引发异常,或者它可能只是返回false;一些实现将展示前一种行为,一些将展示后者。

List<YourObject> result = new ArrayList<YourObject>();

参考链接:Click here

答案 3 :(得分:0)

您正在将列表初始化为null。在问题行中,您在列表对象上调用当前为null的方法。由于您无法在不存在的对象上调用方法,因此必须抛出NPE。异常是静态或类成员,在任何情况下,对象都被忽略,并且被认为是一种不好的做法。例如,这将对null对象起作用 -     Object=null; Object.clearData();
其中clearData()是一个类成员,不应该使用对象引用调用。 因此,如果Java的新手学习这个规则 - 你不能调用方法,或者检查初始化为NULL的对象的变量。在java中,Null只是一个空引用,而不是一个对象。所以它不会有任何行为。 使用类似ArrayList<t>()的具体类型对其进行初始化,它可以正常工作。