我正在JSF 2.2
上写一个Eclipse Neon
项目。我有两个arraylists;一个是从用户(arrayList1
)检查的一组复选框中提取的,另一个是由arrayList2
页面内的用户从输入到芯片组件(.xhtml
)的关键字中提取的。我需要做的是我必须将这两个arraylists结合起来。
问题是当我将chips
留空时,arraylist2
返回null
,而arraylist1
返回空字符串时,我也不会选中此框。所以我认为问题与其他if (lengthlist1 > 0 && arrayList2.size() == 0)
部分有关,因为所有其他情况都运作良好。如果选中复选框并将chips
组件留空,然后运行代码,则会出现以下错误:
引起:java.lang.NullPointerException
同样,所有其他if - else语句都正常工作。
我基本上有4个案例:
private String wordx;
private List<String> arrayList1;
private List<String> arrayList2;
public void arrayList2List() {
arrayList2 = new ArrayList<String>();
}
public void concatenate() throws IOException {
int lengthlist1 = arrayList1.size();
int lengthlist2 = arrayList2.size();
ArrayList<String> concat = null;
if (lengthlist2 > 0 && lengthlist1 > 0) {
concat = new ArrayList<>(lengthlist1 + lengthlist2);
for (int i = 0; i < lengthlist1; i++) {
concat.add(arrayList1.get(i) + And + wordx);
for (int l = 0; l < lengthlist2; l++) {
concat.add(arrayList2.get(l) + And + wordx);
}
}
} else if (lengthlist1 > 0 && arrayList2.size() == 0) { /* I think problem occurs here, when I leave checkboxes list empty */
concat = new ArrayList<>(lengthlist1);
for (int k = 0; k < lengthlist1; k++) {
concat.add(arrayList1.get(k) + And + wordx);
}
} else if (lengthlist1 <= 0 && lengthlist2 > 0) {
concat = new ArrayList<>(lengthlist2);
for (int m = 0; m < lengthlist2; m++) {
concat.add(arrayList2.get(m) + And + wordx);
}
} else {
TODO:do something else
}
for (int j = 0; j < concat.size(); j++) {
Search(concat.get(j));
}
}
有人可以解释错误的根本原因吗?我哪里出错了?所有帮助将不胜感激。