我使用ArrayList<String>
并在检查NullPointerException
是否包含值的方法上捕获ArrayList<String>
。我已将int
传递给该方法,然后将Integer
转换为String
。
ArrayList<String> array = new ArrayList<String>();
public boolean doesContain(int i){
return array.contains(Integer.toString(i));
}
答案 0 :(得分:1)
程序员在Integer和int之间的主要区别在于,Integer可以为null,而int则不能。
因此,如果你像这样调用方法a(int a)
:
Integer x = null;
a(x);
它将抛出NullPointerException,因为它无法将null值转换为int。
答案 1 :(得分:0)
如果此代码正确,
要么使用Integer调用该方法为null,要么包含此方法的类为null,并调用yourClass.doesContain(1)引发nullPointerException,因为&#34; yourClass&#34;是空的。
答案 2 :(得分:-1)
尝试这个
ArrayList<String> array = new ArrayList<String>();
public boolean doesContain(int i){
try{
return array.contains(Integer.toString(i));
} catch (NullPointerException e){}
}