📅  最后修改于: 2023-12-03 15:31:58.439000             🧑  作者: Mango
Java的 Optional
类提供了 or()
方法,该方法用于获取当前 Optional
对象或提供备选对象。
如果当前 Optional
对象存在值,则返回该值,否则返回提供的备选对象。如果备选对象为 null
,则返回一个空 Optional
对象。
public Optional<T> or(Optional<? extends T> other)
其中,T
表示要包装的值的类型。
// 创建一个空的 Optional 对象
Optional<String> emptyOptional = Optional.empty();
// 创建一个包含值的 Optional 对象
Optional<String> presentOptional = Optional.of("present value");
// 创建一个备选对象
Optional<String> otherOptional = Optional.of("other value");
// 使用 or() 方法获取当前 Optional 对象或备选对象
Optional<String> result1 = emptyOptional.or(otherOptional); // 返回 "other value"
Optional<String> result2 = presentOptional.or(otherOptional); // 返回 "present value"
Optional<String> result3 = presentOptional.or(Optional.empty()); // 返回 "present value"
Optional<String> result4 = emptyOptional.or(Optional.empty()); // 返回一个空的 Optional 对象
// 使用 orElse() 方法获取当前 Optional 对象或备选对象
String result5 = emptyOptional.orElse("other value"); // 返回 "other value"
String result6 = presentOptional.orElse("other value"); // 返回 "present value"
String result7 = emptyOptional.orElse(null); // 返回 null
String result8 = presentOptional.orElse(null); // 返回 "present value"
以上示例中,我们首先创建了三个 Optional
对象,一个是空的,一个包含值的,一个是备选对象。
然后,我们使用 or()
方法获取当前 Optional
对象或备选对象。在第一个例子中,因为空的 Optional
对象没有值,所以返回备选对象;在第二个例子中,因为包含值的 Optional
对象已经有值了,所以返回当前对象;在第三个例子中,即使备选对象是空的,也会返回当前对象的值;在第四个例子中,因为当前对象和备选对象都没有值,所以返回一个空的 Optional
对象。
最后,为了方便,我们还展示了使用 orElse()
方法获取当前 Optional
对象或备选对象的用法,其结果同 or()
方法类似。