【发布时间】:2016-06-27 02:51:43
【问题描述】:
我正在尝试返回一个数组,但出现“空指针异常”。我想这是因为我的方法返回了一个包含null 元素的数组。如何正确返回一个空数组?
在主类main方法中:
public class Test{
public static void main(String[] args){
int s = 0;
Project arr[] = new Project[3];
for(int i = 0; i!=3; i++){
Project var = Project.getProject(arr, "Programming");
if (var == null){
var = new Project();
var.setName("Programming");
arr[s]= var;
s=s+1;
}
}
}
}
单独类中的方法:
static Project getProject(Project[] a, String n) {
for (int i = 0; i != a.length; i++)
{
if(a[i].getName().equals(n))
return a[i];
}
return null;
}
例外:
Exception in thread "main" java.lang.NullPointerException
at Project.getProject(Project.java:12)
at Test.main(Test.java:7)
【问题讨论】:
-
代码中没有方法返回数组。只要没有返回数组的方法,就不可能返回空数组。就您的意图而言,您有一个变量
s,它在概念上表示列表的大小,即数组中非null条目的数量。因此,您应该将该数字作为另一个参数传递给您的getProject方法,并让该方法仅迭代到s而不是array.length。
标签: arrays class java-7 static-methods