我写了这段代码
List<Object> result = null;
....
Object resultObject =method.invoke(o, "test", "test");
System.out.println(resultObject);
result.add(resultObject);
resultObject包含我期望的结果,但最后一行包含NullpointerException。
答案 0 :(得分:2)
List<Object> result = null;
变量result
现在包含null
。
result.add(resultObject);
您尝试在add()
上致电result
,但由于result
为null
,则会引发NullPointerException
。
您应该创建列表。将第一行替换为:
List<Object> result = new ArrayList<Object>();
答案 1 :(得分:0)
将您的代码更改为
List<Object> result = new ArrayList<Object>();
否则result
为NULL
。
答案 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>()
的具体类型对其进行初始化,它可以正常工作。