У меня есть список класса bean-компонента newSRMAPIResponseBeanList, в котором я всегда получаю нулевой объект, который я пытаюсь удалить, но это приводит к исключению нулевого указателя, если я обрабатываю исключение, он не удаляет это нулевое значение. Ниже мой код.
for (int i = 0; i < newSRMAPIResponseBeanList.size(); i++) {
try {
if (newSRMAPIResponseBeanList.get(i).getCompanyId().equals(null)) {
newSRMAPIResponseBeanList.remove(i);
}
}catch(Exception e) {
e.printStackTrace();
}
}
В самом условии if это терпит неудачу. Я хочу удалить нулевое значение идентификатора компании. На самом деле newSRMAPIResponseBeanList — это список List<NewSRMAPIResponseBean> newSRMAPIResponseBeanList = new ArrayList<>();, а класс bean-компонента выглядит следующим образом.
public class NewSRMAPIResponseBean {
private String companyId;
private String investmentId;
private String performanceId;
private List<String> values;
}
Есть ли способ удалить это нулевое значение? Я также пытался использовать потоки Java следующим образом.
List<NewSRMAPIResponseBean> finalList=newSRMAPIResponseBeanList.parallelStream()
.filter(Objects::nonNull)
.collect(Collectors.toList());
Это тоже не сработало.
Я хочу удалить нулевое значение идентификатора компании.
Я предполагаю, что вы имеете в виду удалить элемент списка, если идентификатор равен нулю. Так что это не боб, который является нулевым, это companyId. Предполагая, что у вас есть геттеры, попробуйте так. Если идентификатор не равен нулю, пропустите его.
List<NewSRMAPIResponseBean> finalList=newSRMAPIResponseBeanList.parallelStream()
.filter(bean->bean.getCompanyId() != null)
.collect(Collectors.toList());
Вы также можете сделать это в простом цикле. Чтобы избежать ConurrentModificationException, используйте итератор.
Iterator<NewSRMAPIResponseBean> iter = newSRMAPIResponseBeanList.iterator();
while (iter.hasNext()) {
if (iter.next().getCompanyId() == null) {
iter.remove();
}
}
Пожалуйста, опубликуйте полный вывод об ошибке (включая трассировку стека) для «приводящего к исключению нулевого указателя», а также покажите, что не работает при фильтрации с помощью Java Streaming API.