在Java 9中,一些静态方法:stream()or(),和ifPresentOrElse()已添加到Optional 类。Optional类的引入解决了空指针异常。
Optional.or()方法返回的可选描述值,如果一个值存在,否则返回一个可选产生通过供给功能。
语法public Optional or(Supplier extends Optional extends T>> supplier)
示例import java.util.Optional;
import java.util.function.Supplier;
public class OptionalOrTest {
public static void main(String args[]) {
Optional optional = Optional.of("nhooo");
Supplier> supplierString = () -> Optional.of("Not Present");
optional = optional.or(supplierString);
optional.ifPresent(x -> System.out.println("Value: " + x));
optional = Optional.empty();
optional = optional.or(supplierString);
optional.ifPresent(x -> System.out.println("Value: " + x));
}
}
输出结果Value: nhooo
Value: Not Present