当前位置: 首页> 游戏> 攻略 > 邢台做网站推广的公司是哪家?_杭州自助建站模板_关键词推广系统_国内最近的新闻大事

邢台做网站推广的公司是哪家?_杭州自助建站模板_关键词推广系统_国内最近的新闻大事

时间:2025/7/12 0:02:25来源:https://blog.csdn.net/qq_35249342/article/details/145043148 浏览次数:0次
邢台做网站推广的公司是哪家?_杭州自助建站模板_关键词推广系统_国内最近的新闻大事

Optional 的 orElseGet 和 orElse区别

Optional 是 Java 8 引入的一个容器类,用于优雅地处理可能为 null 的值。虽然 Optional 的常见用法(如 orElse)被广泛使用,但 orElseGet 和 orElse 的区别却常常被忽略,合理使用它们可以优化性能并避免不必要的开销。

orElse

立即求值:即使 Optional 中有值,orElse 中的替代值也会被求值。
适用于替代值计算成本较低的情况。

orElseGet

惰性求值:只有当 Optional 中的值不存在时,orElseGet 中的替代逻辑才会被执行。
适用于替代值计算成本较高的情况。

代码示例:

import java.util.Optional;public class OptionalExample {public static void main(String[] args) {Optional<String> optional = Optional.of("Hello, World!");// 使用 orElseString result1 = optional.orElse(getDefaultValue());System.out.println("Result with orElse: " + result1);// 使用 orElseGetString result2 = optional.orElseGet(() -> getDefaultValue());System.out.println("Result with orElseGet: " + result2);}private static String getDefaultValue() {System.out.println("Computing default value...");return "Default Value";}
}

输出结果:

Computing default value...
Result with orElse: Hello, World!
Result with orElseGet: Hello, World!

为什么 orElse 会执行 getDefaultValue?

即使 Optional 中存在值,orElse 会立即调用 getDefaultValue 方法,哪怕最终用不到替代值。
相比之下,orElseGet 使用了 Lambda 表达式,只有在需要时才执行替代逻辑。

实际场景对比

  1. 低成本替代值 (适合orElse)
Optional<String> optional = Optional.empty();
String result = optional.orElse("Simple Default Value");
System.out.println(result);
  1. 高成本替代值 (适合orElseGet)
Optional<String> optional = Optional.empty();
String result = optional.orElseGet(() -> {// 模拟复杂计算return computeExpensiveValue();
});
System.out.println(result);

总结

  1. 用 orElse:当替代值是简单的常量或轻量级计算时。
  2. 用 orElseGet:当替代值的计算比较昂贵或需要依赖上下文时。
    这个小技巧在性能优化和代码整洁度上能起到很大的作用,尤其是当 Optional 被用于复杂逻辑时!
关键字:邢台做网站推广的公司是哪家?_杭州自助建站模板_关键词推广系统_国内最近的新闻大事

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: