看看这段代码:
/* 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告诉我:空指针访问:变量listBySin在此位置只能为空
为什么?如果第一个元素等于listBySin
,我想要的是schedule
来自sin
的字符串数组。
答案 0 :(得分:4)
您需要为var分配List
个对象。
List<String[]> listBySin = new ArrayList<String[]>();
答案 1 :(得分:3)
您必须实例化列表。
List<String[]> listBySin = new ArrayList<String[]>();
答案 2 :(得分:3)
初始化/分配您的列表而不是
List<String[]> listBySin = null;
使用以下内容初始化您的列表
List<String[]> listBySin = new ArrayList<String[]>();
答案 3 :(得分:2)
您需要首先创建Object,然后才能调用该方法。像
这样的东西listBySin = new ArrayList<String[]>();
进入循环之前
答案 4 :(得分: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[]>();
这一切都取决于你的需要。