在Java 9中,一些静态方法:stream()or()
,和ifPresentOrElse()已添加到Optional <T> 类。Optional 类的引入解决了空指针异常。
Optional.or()方法返回的可选 描述值,如果一个值存在,否则返回一个可选产生通过供给功能。
public Optional<T> 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<String> optional = Optional.of("nhooo"); Supplier<Optional<String>> 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