Любой другой лучший способ обработки с использованием Java Stream или Optional.ofNullable - PullRequest
0 голосов
/ 04 марта 2020

Иногда я получаю значение как [null] для List<Employee> employees. Для предотвращения этого я делаю следующую проверку

List<Employee> employees ….

if((employees.size()>0 && employees.get(0) == null)) {
    return Lists.newArrayList();
}

Хотелось бы узнать, есть ли лучший способ с использованием потока или Optional.ofNullable для приведенного выше кода

Ответы [ 3 ]

1 голос
/ 04 марта 2020

Вы можете просто отфильтровать свой список

employees.stream() 
.filter(Objects::nonNull)
.collect(toList())
1 голос
/ 04 марта 2020

Поскольку вы хотите проверить только первый элемент, здесь может не потребоваться использование потоков, например:

Optional.ofNullable(employees)
    .filter(es -> !es.isEmpty())
    .filter(es->Objects.nonNull(es.get(0)))
    .orElse(Lists.newArrayList());
1 голос
/ 04 марта 2020

Если вы знаете, что он имеет значения таким образом: [null]. Вы также можете проверить это, как показано ниже:

if(employees.contains(null)) {
    return Lists.newArrayList();
}

Или

employees = employees.contains(null) ? List.of() : employees;
...