Атрибут объекта всегда оценивается в не нулевую в преобразовании Java Streams Map (), даже если в некоторых случаях оно JAVA

Программисты JAVA общаются здесь
Anonymous
Атрибут объекта всегда оценивается в не нулевую в преобразовании Java Streams Map (), даже если в некоторых случаях оно

Сообщение Anonymous »

Так скажи, у меня есть класс: < /p>

Код: Выделить всё

public class Clazz {
final String someAttribute;

public String getSomeAttribute() {
return someAttribute;
}

public void setSomeAttribute(String someAttribute) {
this.someAttribute = someAttribute;
}
}
< /code>
и я установил атрибут в классе условной. < /p>
Clazz someObject = new Clasz();
if(someCondition) {
someObject.setSomeAttribute(“someString”);
} else {

//  someAttribute is not set, so it is null.
}
< /code>
Когда я пытаюсь получить атрибут с помощью преобразования Map () и использовать его в тройной операции, я получаю предупреждение о компиляции, говоря, что объект никогда не является нулевым, даже хотя это может быть. < /p>
Optional.ofNullable(someObject)
.map(Clazz::getSomeAttribute)
.map(someAttribute->Objects.notNull(someAttribute)) ? “string1” : string2)
.orElse(“”);
Учитывая, что ComeeTribute установлен условно, возможно, что он может быть нулевым, и в этом случае Clazz :: getSomeatTribute будет возвращать NULL. Но я получаю предупреждение во время компиляции, говорящее о том, что объекты. Почему?
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... transforma

Вернуться в «JAVA»