Das Objektattribut bewertet in einer Java-Streams MAP () -Transformation immer zu nicht-null, obwohl es in einigen Fälle

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Das Objektattribut bewertet in einer Java-Streams MAP () -Transformation immer zu nicht-null, obwohl es in einigen Fälle

by Anonymous » 13 Feb 2025, 05:55

Sagen Sie also, ich habe eine Klasse: < /p>

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(“”);
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!

Top