Das Objektattribut bewertet in einer Java-Streams MAP () -Transformation immer zu nicht-null, obwohl es in einigen Fälle
Posted: 13 Feb 2025, 05:55
Sagen Sie also, ich habe eine Klasse: < /p>
Angesichts der Tatsache, dass SomeatTribute bedingt eingestellt ist, ist es möglich, dass es null ist. Aber ich bekomme eine Kompilierungszeitwarnung, die besagt, dass Objekte. Notnull (someattribute) immer falsch ist, d. H. Someattribute ist niemals null. Warum?
Danke im Voraus!
Code: Select all
public class Clazz {
final String someAttribute;
public String getSomeAttribute() {
return someAttribute;
}
public void setSomeAttribute(String someAttribute) {
this.someAttribute = someAttribute;
}
}
< /code>
Und ich habe das Attribut in der Klasse bedingt festgelegt. < /p>
Clazz someObject = new Clasz();
if(someCondition) {
someObject.setSomeAttribute(“someString”);
} else {
// someAttribute is not set, so it is null.
}
< /code>
Wenn ich versuche, das Attribut über eine MAP () -Transformation zu erhalten und es in einer ternären Operation zu verwenden Obwohl es sein kann. < /p>
Optional.ofNullable(someObject)
.map(Clazz::getSomeAttribute)
.map(someAttribute->Objects.notNull(someAttribute)) ? “string1” : string2)
.orElse(“”);
Danke im Voraus!