Java中Optional相关

Java中Optional相关

orElse

提供默认值以确保不会返回 null。
适用于默认情况下的备选值或简单计算结果。

// 如果 optionalName 为空,返回 "Unknown"
Optional<String> optionalName = Optional.empty();
String result = optionalName.orElse("Unknown");
System.out.println("Name: " + result);  // 输出 Name: Unknown

// 如果 optionalNumber 不为空,返回其值;否则返回默认值 0
Optional<Integer> optionalNumber = Optional.of(10);
int number = optionalNumber.orElse(0);
System.out.println("Number: " + number);  // 输出 Number: 10

orElseGet

当生成默认值可能会带来额外开销时,可以使用 orElseGet 来提高性能。
允许生成复杂的默认值或者依赖于条件的值。

// 如果 optionalName 为空,通过 Supplier 生成默认值
Optional<String> optionalName = Optional.empty();
String result = optionalName.orElse("Name not provided");
System.out.println("Name: " + result);  // 输出 Name: Name not provided

// 如果 optionalScore 为空,通过 Supplier 生成默认值
Optional<Double> optionalScore = Optional.ofNullable(null);
double score = optionalScore.orElseGet(() -> Math.random() * 100);
System.out.println("Score: " + score);  // 输出 Score: 随机生成的分数值

orElseThrow

当 Optional 为空时,抛出异常以确保程序不会继续执行下去。
用于强制要求 Optional 中必须包含值的场景。

// 如果 optionalName 为空,抛出 IllegalArgumentException 异常
Optional<String> optionalName = Optional.empty();
try {
   
    String result = optionalName.orElseThrow(() -> new IllegalArgumentException("Name not provided"));
    System.out.println("Name: " + result);
} catch (IllegalArgumentException e) {
   
    System.out.println(e.getMessage());  // 输出 Name not provided
}

// 如果 optionalNumber 为空,抛出 NullPointerException 异常
Optional<Integer> optionalNumber = Optional.ofNullable(null);
try {
   
    int number = optionalNumber.orElseThrow(NullPointerException::new);
    System.out.println("Number: "</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值