我有ArrayList
我自己的班级Case
。类案例提供方法getCaseNumber()
我想将所有案例casenumber添加到String[] caseNumber
。我试过这个
public String[] getCaseNumberToTempList(ArrayList<Case> caseList) {
String[] objectCaseNumber = null;
for(int i = 0; i < caseList.size(); i++) {
objectCaseNumber[i] = caseList.get(i).getCaseNumber();
}
return objectCaseNumber;
}
但是我的编译器抱怨说{for循环'中objectCaseNumber
为空。我该如何设法完成此操作?
答案 0 :(得分:3)
好吧,你需要创建一个数组来开始,并通过对数组的引用初始化变量。 (有关详细信息,请参阅Java tutorial for arrays。)例如:
String[] objectCaseNumber = new String[caseList.size()];
或者,建立一个List<String>
(例如使用ArrayList
)代替。这更灵活 - 在这种情况下,它很简单,因为你知道前面的大小,但在其他情况下,只需添加到列表使生活更简单。
答案 1 :(得分:3)
ArrayList
用作参数类型。使用List
。List
中累积,然后转换为arrray:public String[] getCaseNumberToTempList(List<Case> caseList) {
final List<String> r = new ArrayList<String>();
for (Case c : caseList) r.add(c.getCaseNumber());
return r.toArray(new Case[0]);
}
在您的代码中,由于ArrayList
随机访问的性能影响,坚持get
是有意义的,但如果您使用这种代码(我建议养成它的习惯) ,那么你可以使用任何具有相同结果的List
。
答案 2 :(得分:0)
好吧,我认为你可能误解了Arrays是一种原始类型。 java中的数组是对象,在访问它们之前需要对它们进行初始化。