首页 > 其他分享 >使用Optional-避免NPE

使用Optional-避免NPE

时间:2023-10-23 14:22:34浏览次数:46  
标签:ofNullable ifPresent NPE 对象 避免 使用 null Optional

1、常用写法:

Optional.ofNullable(messageTemplate).orElseThrow(() -> new BusinessException("模板不能为空"));

2、介绍

Optional.ofNullable() 是 Java 8 引入的一个方法,用于创建一个可能为null的Optional对象。Optional 是一种容器,可以包含一个非null的值,也可以不包含值(即为空)。使用 Optional 可以更好地处理可能为null的值,避免空指针异常。

要使用 Optional.ofNullable(),可以按照以下方式进行操作:

  1. 导入 java.util 包,以确保可以使用 Optional 类。

  2. 使用 Optional.ofNullable() 方法来创建一个 Optional 对象,该方法接受一个可能为null的对象作为参数。如果提供的对象是非null的,它会包装这个对象;如果提供的对象是null,它会创建一个空的 Optional 对象。

    案例 demo:

  3. public static void main(String[] args) {
    String nullableValue = "Hello, Optional!";
    // 使用 Optional.ofNullable() 创建一个包含值的 Optional 对象
    Optional<String> optionalWithValue = Optional.ofNullable(nullableValue);

    // 打印Optional对象的值
    optionalWithValue.ifPresent(value -> System.out.println("Value: " + value));

    String nullValue = null;
    // 使用 Optional.ofNullable() 创建一个空的 Optional 对象
    Optional<String> optionalEmpty = Optional.ofNullable(nullValue);

    // 如果值为空,执行一个操作
    optionalEmpty.ifPresent(value -> System.out.println("This will not be printed"));
    }
  4. Optional.ofNullable() 方法被用来包装一个可能为null的字符串。如果字符串不为null,那么 optionalWithValue 包含这个字符串,可以使用 ifPresent 方法来访问它。如果字符串为null,optionalEmpty 将是一个空的 Optional 对象,不包含任何值。

    使用 Optional 有助于更加优雅地处理可能为null的情况,并避免因为空指针异常而导致的程序崩溃。

     

标签:ofNullable,ifPresent,NPE,对象,避免,使用,null,Optional
From: https://www.cnblogs.com/wlwtop/p/17782298.html

相关文章

  • 滚珠螺杆应如何存放避免受损
    滚珠螺杆是一种高精度的机械零件,保存或使用不当,会直接损坏,影响生产效率,因此我们在使用时需要注意以下事项:1、避免垂直放置:没有施加预压的螺杆垂直放置时,螺母会因自重而从螺杆轴上脱荐下来,因此使用时要注意避免垂直放置。如果无法避免垂直放置,可以参考垂直使用方法进行操作。2、注意......
  • 巧用模板字符串将未知变量转换为string类型,避免报错
    可理解为将变量向字符串类型转换的语法糖用法我们通常会遇到需要用String.prototype上的方法处理变量,如果该变量为null、undefined、Object则不能直接用字符串方法,也不易于统一处理为字符串;使用模板字符串包裹该变量,则可以简单粗暴的将任意类型转换为字符串类型,避免报错。案例:......
  • 硬盘数据恢复:避免悲剧,学会这招就能轻松搞定
    在这个数字化时代,数据的重要性日益凸显,我们的工作和生活已经和各种电子设备和数据紧密联系在一起。硬盘、U盘、固态硬盘这些看似普通的存储设备,却承载着我们的重要数据,比如,照片、工作文档、视频等。如果这些重要数据意外丢失了,那么无疑将是巨大的损失。硬盘数据丢失问题在平时也很......
  • 硬盘数据恢复:避免悲剧,学会这招就能轻松搞定
    在这个数字化时代,数据的重要性日益凸显,我们的工作和生活已经和各种电子设备和数据紧密联系在一起。硬盘、U盘、固态硬盘这些看似普通的存储设备,却承载着我们的重要数据,比如,照片、工作文档、视频等。如果这些重要数据意外丢失了,那么无疑将是巨大的损失。硬盘数据丢失问题在平时也很......
  • 示波器探测需要避免的七大常见错误
    了解常见的示波器探测错误以及如何避免这些错误,这将帮助您更好地进行测量。在理想情况下,所有示波器探头都应该是一条不会对被测设备产生任何干扰的导线,当连接到您的电路时,具有无穷大的输入电阻,而电容和电感为零。这样将会精确复制被测信号。但现实情况是,示波器探头会给电路带......
  • 怎么避免v-for和v-if一起使用
    背景接手了别的项目,然后打开一个文件,看到了有个error提示信息。大概是说不能同时使用v-for和v-if。具体如下截图所示: 为啥不能同时使用?其实,不能同时使用的原因,主要是会存在性能问题。 那怎么优化呢?方法一详情请查看: 怎么避免v-for和v-if一起使用 ......
  • 在Java中,如何避免检查空值?
    内容来自DOChttps://q.houxu6.top/?s=在Java中,如何避免检查空值?我使用x!=null来避免空指针异常。有没有其他的替代方法?if(x!=null){//...}在我看来,这是一个相对常见的问题,初级到中级的开发人员在某个时候都会遇到:他们要么不知道,要么不信任他们参与的合同,......
  • ASP.NET Core Minimal API之optional route parameter with default value and option
    publicstaticvoidMain(string[]args){varbuilder=WebApplication.CreateBuilder(args);varapp=builder.Build();app.MapGet("/product/{name}",(stringname)=>$"Theproductis{name}").WithName("product&......
  • 死锁避免
          ......
  • 如何用简单的方式避免烦人的小错误
    以下技巧在NOILinux下开启c++14的情况下均可使用,放心食用。在非void函数开头使用[[nodiscard]]避免没有用到函数的情况示例:[[nodiscard]]intplu(inta,intb){returna+b>=p?a+b-p:a+b;}voidsolve(){inta,b;cin>>a>>b;plu(a,b);}编译器会以警告......