java中optional的常用方法有哪些


这篇文章主要介绍了java中optional的常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中optional的常用方法有哪些文章都会有所收获,下面我们一起来看看吧。Java中的Optional是一个容器对象,它可以包含一个非空值,也可以为空。它的主要作用是在编写代码时避免空指针异常。java 8 中Optional的完整用法如下:可以通过of()方法创建一个包含非空值的Optional对象,例如:也可以通过ofNullable()方法创建一个包含可能为空的值的Optional对象,例如:可以通过get()方法获取Optional对象中的非空值,例如:如果Optional对象中的值为空,调用get()方法会抛出NoSuchElementException异常。因此,在调用get()方法之前,最好先使用isPresent()方法判断Optional对象是否包含一个非空值。可以使用isPresent()方法判断Optional对象是否包含一个非空值,例如:也可以使用ifPresent()方法在Optional对象包含非空值时执行一些操作,例如:可以使用orElse()方法获取Optional对象中的值或默认值,例如:如果Optional对象中的值为空,则返回指定的默认值。可以使用orElseThrow()方法获取Optional对象中的值或抛出异常,例如:如果Optional对象中的值为空,则抛出指定的异常。可以使用map()方法将Optional对象中的值转换为另一个类型的值,例如:如果Optional对象中的值为空,则返回一个空的Optional对象。可以使用filter()方法过滤Optional对象中的值,例如:如果Optional对象中的值不满足指定的过滤条件,则返回一个空的Optional对象。我们介绍了 Java 8 的特性,Java 9 为 Optional 类添加了三个方法:or()、ifPresentOrElse() 和 stream()。or() 方法与 orElse() 和 orElseGet() 类似,它们都在对象为空的时候提供了替代情况。or() 的返回值是由 Supplier 参数产生的另一个 Optional 对象。如果对象包含值,则 Lambda 表达式不会执行:上面的示例中,如果 user 变量是 null,它会返回一个 Optional,它所包含的 User 对象,其电子邮件为 “default”。ifPresentOrElse() 方法需要两个参数:一个 Consumer 和一个 Runnable。如果对象包含值,会执行 Consumer 的动作,否则运行 Runnable。如果你想在有值的时候执行某个动作,或者只是跟踪是否定义了某个值,那么这个方法非常有用:其实到底该不该用Optional,业界还是有不少争议的,一方面是Optional能强迫开发者处理null值,但另一方面是Optional又非常容易滥用,特别是一些开发者拿到Optional之后就直接调用get()或ifPresent()方法免费云主机域名,这样几乎没解决任何问题,还加重了编码负担。因此,我的建议是,在你不知道该不该使用Optional的场景,那就先别用。下面是一些使用Optional的场景参考,如下:Optional一般用于返回值
Optional大多用于返回值,不推荐用在成员变量或方法参数中。Optional本身不判null
永远都不要给Optional赋值null,也不要判断Optional本身是否为null,这是因为Optional本来就是解决null的,再引入null就没意思了,这应该成为业界共识。集合不使用Optional
因为集合有Collections.emptyList()等更好的处理方法了,没必要再使用Optional。函数式处理值
从上面的用法介绍中就能发现,Optional提供了很多lambda函数式处理的方法,如filter、map等,这些是使用Optional时比较推荐使用的,因为Optional能帮你自动处理null值情况,避免NPE异常。多层属性获取
前面举过这个代码样例,我觉得这是Optional使用收益最明显的一个场景。不返回null胜过返回Optional
返回Optional给调用方,会强制调用方处理null情况,会给调用方增加一些的编码负担,特别是复用度很高的函数。
但如果调用方大多数情况下都不期望获取到null,那应该实现一个这样的方法,要么返回值,要么异常,如下:由于后面处理代码依赖订单数据,获取不到订单数据,代码也没法往下走,所以在大多数情况下,选择使用getOrderByIdOrExcept方法更好,即避免了NPE,又避免了增加编码负担!关于“java中optional的常用方法有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“java中optional的常用方法有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: PHP中怎么对数组进行模糊查询

这篇文章主要介绍“PHP中怎么对数组进行模糊查询”,在日常操作中,相信很多人在PHP中怎么对数组进行模糊查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中怎么对数组进行模糊查询”的疑惑有所帮助!接下来,请跟着小编一起来学…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/13 10:15
Next 07/13 10:15

相关推荐