У меня есть карта (своего рода мультикарта) со следующей подписью:
Map<String, Set<String>> motherChildIndex;
Если ключ не существует на карте, я бы предпочел, чтобы он возвращал пустой набор(в отличие от нуля), поэтому я наткнулся на метод getOrDefault
, который должен позволить мне эффективно "игнорировать" пустые значения.
Вот мой соответствующий код:
motherChildIndex
.getOrDefault(personId, Collections.emptySet()) //personId is just a string that may or may not be in the map, hence getOrDefault
.stream() //I get the warning here
.map(personsIndex::get) //Not important to reproduce
.forEach(children::add); //Not important to reproduce
В строке .stream()
я получаю предупреждение:
При вызове метода 'stream' может возникнуть 'java.lang.NullPointerException'
Почему?Я думал, что getOrDefault()
должен был никогда не возвращать ноль.
Я использую Android Studio в качестве своей IDE, если это что-то меняет.