
在Java 9中,Optional<T>类中添加了一些静态方法:stream()、or()和ifPresentOrElse()。引入Optional类解决了空指针异常的问题。
Optional.or()方法返回一个Optional,描述如果存在值则返回该值,否则返回由提供函数生成的Optional。
语法
<strong>public Optional<T> or(Supplier<? extends Optional<? extends T><!--? extends Optional<? extends T-->> supplier)</strong>
示例
import java.util.Optional;
import java.util.function.Supplier;
public class OptionalOrTest {
public static void main(String args[]) {
<strong>Optional<String></strong> optional = <strong>Optional.of</strong>("TutorialsPoint");
<strong>Supplier<Optional<String>></strong> supplierString = () -> <strong>Optional.of</strong>("Not Present");
optional = <strong>optional.or</strong>(supplierString);
optional.<strong>ifPresent</strong>(x -> System.out.println("Value: " + x));
optional = <strong>Optional.empty()</strong>;
optional = <strong>optional.or</strong>(supplierString);
optional.<strong>ifPresent</strong>(x -> System.out.println("Value: " + x));
}
}输出
<strong>Value: TutorialsPoint Value: Not Present</strong>











