Gad*_*dam 3 java null nullpointerexception optional
我有这样的课.
public class SomeClass {
private Optional<String> testString;
public SomeClass() {
populateFields();
}
public Optional<String> getTestString() {
return testString;
}
private void populateFields() {
if(//something is going false here){
testString = functionThatReturnsOptionalString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在instanceOfSomeClass.getTestString()返回null.是不是可选始终应该包含非空值或为空?我正在尝试或避免使用isNull()并在我的调用者中使用isEmpty().
如果我在populateFields()的第一行放置一个断点并在那时检查testString中的值,它会将值显示为null.表示此字段的默认值(在分配任何内容之前)为null.
请详细说明这种情况; 也许正确使用Optional?
Lou*_*man 10
一个Optional总是包含一个非null值或者是空的,是的,但是你没有Optional,你有一个类型为Optional的引用为null.你需要初始化testString,例如Optional.empty().
Optional不是魔法,它是一个像任何其他对象一样的对象,并且Optional引用本身可以为null.它的内容Optional不能为空.
| 归档时间: |
|
| 查看次数: |
13663 次 |
| 最近记录: |