千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Java ifPresent 方法

Java ifPresent 方法

来源:千锋教育
发布人:xqq
时间: 2023-11-25 09:06:59 1700874419

Java ifPresent 方法是 Java 8 新添加的一个方法,用于检查一个 Optional 对象是否包含了非 null 的值。在进行一些操作之前,你需要确定这个 Optional 对象确实包含值。如果包含值,就可以用 ifPresent 方法来对值进行一些操作。下面将详细介绍这个方法的用法,以及适合的场景。

一、常见用途

一般来说,当使用 Optional 类型时,我们会编写一些辅助类来进行检查并进行操作。但是,如果尝试直接在 Optional 对象上进行操作,可能会导致类型不匹配或者 NPE 等问题。

ifPresent() 方法就能够解决这类问题。它能够充分利用 lambda 表达式的特性,通过 Optional 对象进行操作。

二、代码示例

下面是一个简单的示例,用于展示 ifPresent() 方法的用法。



import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        Optional fullName = Optional.ofNullable(null);
        System.out.println("Full Name is set? : "+fullName.isPresent());

        System.out.println("Full Name: "+fullName.orElseGet(()-> "[none]"));

        fullName.ifPresent(System.out::println);
    }
}

运行结果如下:



Full Name is set? : false
Full Name: [none]

输出结果中,我们可以看到 ifPresent() 只有当前 Optional 对象非 null 的时候才会进行操作。

三、ifPresent 方法的参数

ifPresent() 方法的参数是一个函数接口,这个函数最多接受一个参数,返回值类型是void。

如果调用 ifPresent() 方法时,Optional 对象包含非 null 的值,那么这个函数接口中的方法就会被调用。具体来说,这个 函数接口 会将 Optional 对象中的值作为参数传递给这个函数。

如果 Optional 对象中的值是一个对象,而函数接口需要一个基本类型,那么 Optional 对象自动的使用了装箱机制,将其装箱为一个对象。

四、小结

总之,ifPresent() 方法是 Java 中多重值作为 API 的一部分,有助于使代码更加规范和易于维护。如果在开发过程中遇到 Optional 对象的操作问题,使用 ifPresent 可随时判断 Optional 对象是否有值,避免出现 NPE 异常。

然而,由于 Optional 没有提供公共接口,如果对于 ifPresent() 方法并不熟悉,可能会给你带来一些困惑。因此,在使用 Optional 相关 API 的过程中,一定要加强对这些函数的掌握,帮助你更好地了解代码。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT