Optional类中的orElse和orElseGet的区别

  1. orElse方法与orElseGet方法对比表

Optional内对象参数效果注释
null对象相同

orElse和orElseGet方法都会返回参数对象

不为null对象相同返回Optional内对象
null有返回值的函数相同orElse和orElseGet方法都会返回参数内函数返回值
不为null有返回值的函数不同返回Optional内对象,但orElseGet不会执行函数内容,orElse会执行函数内容

2. 简单示例(仅针对orElse与orElseGet方法不同的情况,即Optional内对象不为null,且参数为有返回值函数)

 2.1 准备类

public class Staff {
        String name;
        Integer age;
        ... // getter setter
}

2.2 orElse 和 orElseGet的对比

    @Test
    void optionalTest(){

        Staff staff = new Staff("Jerome",12);

        System.out.println("----------------------orElseGet---------------------------");
        staffName = Optional.ofNullable(staff).map(s -> s.getName()).orElseGet(this::getName);
        System.out.println(staffName);

        System.out.println("----------------------orElse---------------------------");
        staffName = Optional.ofNullable(staff).map(s -> s.getName()).orElse( getName());
        System.out.println(staffName);
    }

    private String getName(){
        System.out.println("Get String if null");
        return "Get String";
    }

显示效果

----------------------orElseGet---------------------------
Jerome
----------------------orElse---------------------------
Get String if null
Jerome

要安装和配置pcl1.13.0vs2022,你可以按照以下步骤进行操作: 1. 首先,下载pcl1.13.0的安装文件。你可以在中找到下载链接。 2. 安装pcl1.13.0。运行下载的安装文件"PCL-1.13.0-rc1-AllInOne-msvc2022-win64.exe"并按照提示完成安装。如果你遇到任何问题,可以参考中的文章以获取更详细的安装指南。 3. 配置vs2022。打开Visual Studio 2022,并按照以下步骤进行配置: a. 找到"工具"菜单,选择"选项"。 b. 在"选项"对话框中,展开"项目和解决方案"选项,选择"VC++目录"。 c. 在右侧的"包含目录"、"库目录"和"库文件"字段中,分别添加以下路径: - 包含目录:E:\awork\Package\PCL 1.13.0-rc1\include - 库目录:E:\awork\Package\PCL 1.13.0-rc1\lib - 库文件:E:\awork\Package\PCL 1.13.0-rc1\lib 4. 添加额外的库路径。根据中提供的信息,你还需要将以下路径添加到"库目录"中: - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\Boost\lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\FLANN\lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\Qhull\lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\OpenNI2\Lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\VTK\lib 5. 完成配置后,你可以在vs2022中创建和编译与pcl1.13.0相关的项目了。 希望以上步骤对你有帮助,如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Win10 系统下VisualStudio2022 配置点云库 PCL 1.13.0](https://blog.csdn.net/qq_41339558/article/details/128184513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值