Skip to content

Optional 类


基本介绍

alt text

相关方法


注意:调用 Optional . of(T t )方法创建对象时,t 必须非空

示例代码

java
import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        String name = "John";  // 创建一个包含值的字符串变量

        // 使用 Optional 来包装可能为 null 的值
        Optional<String> optionalName = Optional.ofNullable(name);

        // 检查值是否存在
        if (optionalName.isPresent()) {
            // 如果值存在,打印该值
            System.out.println("Name is: " + optionalName.get());
        } else {
            // 如果值为空,打印提示信息
            System.out.println("Name is not present");
        }

        // 使用 ifPresent() 如果值存在则执行代码
        optionalName.ifPresent(n -> System.out.println("Name (using ifPresent): " + n));

        // 使用 orElse() 如果值不存在则提供默认值
        String defaultName = optionalName.orElse("Default Name");
        System.out.println("Name (using orElse): " + defaultName);
    }
}

// 输出结果
Name is: John
Name (using ifPresent): John
Name (using orElse): John

代码解释

(1)Optional.ofNullable(name):创建一个 Optional 对象,它可能包含一个值,也可能为空

(2)isPresent():检查 Optional 中是否有值

(3)get():如果值存在,获取该值

(4)ifPresent():如果 Optional 中有值,执行给定的 Lambda 表达式

(5)orElse():如果 Optional 为空,提供一个默认值

实际应用

在主函数中调用该方法,如果不为空则返回传入值,否则返回 orElse 中的默认值

java
public static String getNameOrDefault(String name) {
    // 使用 Optional 判断是否为空,如果为空返回默认值
    return Optional.ofNullable(name).orElse("Default Name");
}