如何获取对象字符串并将其添加到字符串数组中

时间:2012-07-25 08:01:17

标签: java

我有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为空。我该如何设法完成此操作?

3 个答案:

答案 0 :(得分:3)

好吧,你需要创建一个数组来开始,并通过对数组的引用初始化变量。 (有关详细信息,请参阅Java tutorial for arrays。)例如:

String[] objectCaseNumber = new String[caseList.size()]; 

或者,建立一个List<String>(例如使用ArrayList)代替。这更灵活 - 在这种情况下,它很简单,因为你知道前面的大小,但在其他情况下,只需添加到列表使生活更简单。

答案 1 :(得分:3)

  1. 在惯用Java中,您不会将ArrayList用作参数类型。使用List
  2. 略微增加开销,但更简单,更易读的代码会在另一个List中累积,然后转换为arrray:

  3. 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中的数组是对象,在访问它们之前需要对它们进行初始化。