源码
public T orElse(T other) {
return value != null ? value : other;
}
简述
`orElse()` 是 Java 中 Optional 类提供的方法之一。它的作用是,如果 Optional 对象中的值存在,
则返回该值;如果值不存在,则返回一个指定的默认值。
该方法接受一个类型为T的参数other,用于指定当值不存在时的默认值。
方法内部通过判断value是否为null来决定返回value还是other。
返回值的类型为T,即方法的返回值类型与存储的值类型相同。
实例
Optional<String> optional = Optional.of("Hello");
String result1 = optional.orElse("World");
// result1 = "Hello"
Optional<String> optional2 = Optional.empty();
String result2 = optional2.orElse("World");
// result2 = "World"
该方法适用于Optional类型的对象,用于处理值可能存在或不存在的情况。通过调用orElse方法,可以提供一个默认值,以避免在值不存在时引发空指针异常。
简单的示例代码,演示了 `orElse()` 方法的用法:
```java
import java.util.Optional;
public class Main {
public static void main(String[] args) {
// 创建一个包含值的 Optional 对象
Optional<String> optionalWithValue = Optional.of("Hello");
// 使用 orElse() 获取 Optional 对象中的值(如果存在)
String value1 = optionalWithValue.orElse("Default Value");
System.out.println("Value 1: " + value1); // 输出:Value 1: Hello
// 创建一个空的 Optional 对象
Optional<String> optionalEmpty = Optional.empty();
// 使用 orElse() 获取 Optional 对象中的值(如果不存在)
String value2 = optionalEmpty.orElse("Default Value");
System.out.println("Value 2: " + value2); // 输出:Value 2: Default Value
}
}
```
在上面的示例中,我们首先创建了一个包含值的 Optional 对象 `optionalWithValue`,然后调用了 `orElse("Default Value")` 方法获取其中的值。由于 Optional 对象中的值存在,因此会返回该值 "Hello"。接着,我们创建了一个空的 Optional 对象 `optionalEmpty`,同样调用了 `orElse("Default Value")` 方法来获取其中的值。由于 Optional 对象中的值不存在,所以会返回指定的默认值 "Default Value"。
需要注意的是,`orElse()` 方法返回的是包含实际值或默认值的对象,而不是实际值本身。这样做的好处是避免了对 null 进行处理,更加安全和可靠。