Как добавить объект в существующий массив, если object.values ​​не пуст, используя Java 8 - PullRequest
0 голосов
/ 10 мая 2019

У меня есть необязательный объект Product. Я должен добавить этот объект в существующий набор, если product.locations не является пустым

Set<Product> s = new HashSet()P:

if(!product.locations().empty()){ // product.locations() returns Collection<Location>
 s.add(product);
}

Может быть, что-то вроде ..

p.map(Product::location).isNonEmpty(s.add(p))?

Как этого добиться, используя функции Java 8 API / Map / Flatmap?

1 Ответ

1 голос
/ 10 мая 2019

Вы можете сделать это так:

product.map(Product::getLocations)
        .filter(l -> !l.isEmpty())
        .ifPresent(l -> s.add(product.get()));

@ Правка Хольгера

product.filter(p -> !p.getLocations().isEmpty())
        .ifPresent(s::add);
...