-1

看看这段代码:

/*   Implementation to populate List<String[]> schedule  */

public List<String[]> getSchedBySIN(String sin) {
    List<String[]> listBySin = null;

    for (String[] temp : schedule) {
        if(temp[0].equals(sin)) listBySin.add(temp);
    }

    return listBySin;
}

listBySin该行...listBySin.add(temp);带有黄色下划线,Eclipse 告诉我:Null pointer access: The variable listBySin can only be null at this location

这是为什么?我想要做的是填充listBySin字符串数组,schedule如果它们的第一个元素等于sin.

4

5 回答 5

4

您需要为Listvar 分配一个对象。

List<String[]> listBySin = new ArrayList<String[]>();
于 2012-05-22T10:10:28.777 回答
3

您必须实例化列表。

List<String[]> listBySin = new ArrayList<String[]>();
于 2012-05-22T10:10:33.287 回答
3

初始化/分配您的列表而不是

List<String[]> listBySin = null;

使用以下来初始化您的列表

List<String[]> listBySin = new ArrayList<String[]>();
于 2012-05-22T10:10:50.883 回答
2

您需要先创建对象,然后才能对其调用方法。就像是

listBySin = new ArrayList<String[]>();

在进入循环之前

于 2012-05-22T10:12:56.543 回答
2

You must initialize List根据。您可以使用 ArrayList 或 Vector 或 Stack 或 CopyOnWriteArrayList 进行初始化。

    List<String[]> str=new ArrayList<String[]>();
    List<String[]> str=new LinkedList<String[]>();
    List<String[]> str=new Stack<String[]>();
    List<String[]> str=new Vector<String[]>();
    List<String[]> str=new CopyOnWriteArrayList<String[]>();

这一切都取决于您的需要。

于 2012-05-22T10:43:17.493 回答