0
是否可以测试Optional
并返回1)正在测试的实例的子字段(或方法)或2)如果正在测试的实例是null空值?使用java.util.Optional为可选类型的子字段返回空值
下面是一个例子(没有编译):
public static void main(String[] args) {
A a1 = null;
LocalDate a_date_field = Optional.ofNullable(a1).orElse(???).date; // <--- I need this line ...
LocalDate a_date_field = a1 == null? null : a1.date; // <---- ... to work like this line
}
static class A {
LocalDate date = LocalDate.now();
}
是的,你可以用一个新的实例提供Optional::orElse()
:
LocalDate a_date_field = Optional.ofNullable(a1).orElse(new A()).date;
但是,这仅仅是不正确。由于a
为空,因此a_date_field
也应该为空。
与null
供应领域显然是行不通的:
String afield = Optional.ofNullable(a1).orElse(null).field;
此抛出NPE。
这可能与Optional
?