【发布时间】:2017-10-14 02:00:14
【问题描述】:
我在处理带有空字段的 Arraylist 时遇到问题。
作为输入,我有一个 Excel 列表中的值,并且有些单元格是空的(显示示例)。
Column A Column B Column C Column D
Val1 Val2 Val3 Val4
Bla1 Bla2 Bla3
Hug1 Hug2 Hug3 Hug4
...
到目前为止,这些值都在一个 Arraylist 中。现在我有一个 Switch Case,我现在选择使用 D 列。现在的问题是我不能处理空字段。这些必须删除或跳过,因为我的输出没有空值。 当我尝试这样做时,我得到了一个空指针异常。
这里有一些代码:
private Arraylist<ExcelReader> el;
private void doSomething() {
switch (chooseColumn) {
// ArrayList is loaded
//…
case “D”:
// here I want to remove the null fields
for (int c = 0; c <= el.size(); c++) {
if(el.get(c).getColumnD().isEmpty()) {
el.remove(c);
}
}
break;
// …
}
我在将它写回文件时尝试过,但得到了空指针异常。 我的错误在哪里?我做错了什么?
【问题讨论】:
-
当然,如果你有
null值,el.get(c).getColumnD().isEmpty())将是一个问题。如果你get(c)返回null,你可以在那里检查。 -
是的值为空
-
如果
el.get(c)是返回 null 的那个,您可以查看重复项以找到非常好的解决方案。如果没有,这将需要一些改进或条件来过滤那些而不将其从列表中删除