Как вернуть false, если коллекция равна нулю перед потоком в Java 8? - PullRequest
1 голос
/ 09 мая 2019

Я написал приведенный ниже код, чтобы проверить некоторые условия.

/**
 * Returns true if any of the dose detail is an x
 * @return boolean
 */
public <DD extends BD<DI>, DI extends BI> boolean Y(final Collection<DD> dds) {
    return dds.stream().anyMatch(dd -> dd.M().K());
}

, но у этого метода есть некоторые dds риска, которые равны нулю.Мне нужно вернуть ложь дд также ноль.Как можно изменить этот метод с помощью Java 8 для нулевого безопасного?

Ответы [ 3 ]

6 голосов
/ 09 мая 2019

Или вы можете сделать это так. Больше или как то же самое

return dds != null && dds.stream().anyMatch(dd -> dd.M().K());
2 голосов
/ 09 мая 2019

Кроме того, вы можете обернуть его вокруг Optional как:

public <DD extends BD<DI>, DI extends BI> boolean Y(final Collection<DD> dds) {
    return Optional.ofNullable(dds)
            .filter(d -> d.stream().anyMatch(dd -> dd.M().K()))
            .isPresent();
}
2 голосов
/ 09 мая 2019

Это может быть так же просто, как

public <DD extends BD<DI>, DI extends BI> boolean Y(final Collection<DD> dds) {
    return dds == null ? false : dds.stream().anyMatch(dd -> dd.M().K());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...