
optional.ifpresent()和optional.orelse()是java的optional类中的两个方法,旨在优雅地处理可选值,但它们的用途不同,使用场景也不同。
1。可选.ifpresent()
如果可选值中存在值,则 ifpresent() 方法将执行给定的操作。当该值存在时,它通常用于产生副作用。
主要特征:
动作执行:
仅当optional包含值时才执行指定的消费者。
无返回值:
它不返回任何内容(void 方法)。
optional optional = optional.of("hello");optional.ifpresent(value -> system.out.println("value is: " + value));// output: value is: hellooptional emptyoptional = optional.empty();emptyoptional.ifpresent(value -> system.out.println("value is: " + value));// no output since the optional is empty.
用例:
如果值存在则执行操作(例如,记录、更新状态)。
在对值进行操作之前避免显式的 null 检查。
2。可选.orelse()
有道小P
有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。
64 查看详情
orelse() 方法返回optional 中包含的值,如果optional 为空,则返回默认值。
主要特征:
返回值:
始终返回一个值,可以是包含的值,也可以是默认值。
无副作用:
不执行任何操作,仅返回值。
optional optional = optional.of("hello");string value = optional.orelse("default");system.out.println(value); // output: hellooptional emptyoptional = optional.empty();string emptyvalue = emptyoptional.orelse("default");system.out.println(emptyvalue); // output: default
用例:
当optional为空时提供后备/默认值。
确保始终从optional返回非空值。
将两者结合在一个场景中
示例:
您有一个代表用户名的可选值。如果用户名存在,则记录它。如果没有,您将使用默认用户名。
Optional username = Optional.of("JohnDoe");// Log the username if presentusername.ifPresent(name -> System.out.println("User logged in: " + name));// Get the username or default to "Guest"String displayName = username.orElse("Guest");System.out.println("Display name: " + displayName);// Output:// User logged in: JohnDoe// Display name: JohnDoe
总结
当您想要对存在的值执行操作时,请使用 ifpresent()。
当您想要检索值时,请使用 orelse(),确保如果optional 为空,则返回默认值。
以上就是OptionalifPresent() 与OptionalorElse() 有何不同?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/614137.html
微信扫一扫
支付宝扫一扫