Java空指针异常处理:Optional类使用 原创 迈不过友情╰ 2024-11-07 21:27 4阅读 0赞 在Java中,`NullPointerException`(空指针异常)是一种常见的运行时异常,它发生在尝试使用`null`引用调用方法或访问对象的属性时。为了避免这种异常,Java8引入了`Optional`类,它提供了一种更优雅的方式来处理可能为`null`的对象。 `Optional`类的主要目的是减少`NullPointerException`的发生,并提供一个更清晰的方式来表达代码中的条件逻辑。以下是`Optional`类的一些基本用法: ### 创建Optional对象- **of(T value)**: 创建一个包含非空值的`Optional`对象。 - **ofNullable(T value)**: 创建一个可能包含空值的`Optional`对象。 - **empty()**: 创建一个空的`Optional`对象。 ### 使用Optional对象- **isPresent()**:检查`Optional`对象是否包含非空值。 - **ifPresent(Consumer<T> consumer)**: 如果`Optional`对象包含非空值,则执行给定的操作。 - **orElse(T other)**: 如果`Optional`对象包含非空值,则返回该值,否则返回指定的默认值。 - **orElseGet(Supplier<T> other)**: 如果`Optional`对象包含非空值,则返回该值,否则返回由指定的`Supplier`函数提供的值。 - **orElseThrow()**: 如果`Optional`对象包含非空值,则返回该值,否则抛出一个异常。 - **map(Function<T,R> mapper)**: 如果`Optional`对象包含非空值,则将该值映射到另一个值,否则返回一个空的`Optional`对象。 - **flatMap(Function<T,Optional<R>> mapper)**: 如果`Optional`对象包含非空值,则将该值映射到另一个`Optional`对象,否则返回一个空的`Optional`对象。 ### 示例代码```javaimport java.util.Optional; public class OptionalExample { public static void main(String[] args) { // 创建一个Optional对象 Optional<String> optional = Optional.ofNullable(null); //检查Optional对象是否包含非空值if (optional.isPresent()) { System.out.println("Optional contains a non-null value: " + optional.get()); } else { System.out.println("Optional is empty"); } // 使用orElse方法提供默认值String value = optional.orElse("Default Value"); System.out.println("Value: " + value); // 使用orElseGet方法提供默认值String valueWithSupplier = optional.orElseGet(() -> "Default Value from Supplier"); System.out.println("Value with Supplier: " + valueWithSupplier); // 使用orElseThrow方法抛出异常 try { String valueOrThrow = optional.orElseThrow(NullPointerException::new); System.out.println("Value or throw: " + valueOrThrow); } catch (NullPointerException e) { System.out.println("Caught exception: " + e.getMessage()); } // 使用map方法 Optional<Integer> length = optional.map(String::length); length.ifPresent(System.out::println); // 如果Optional包含非空值,则打印其长度// 使用flatMap方法 Optional<Optional<String>> nestedOptional = Optional.ofNullable(null).flatMap(Optional::ofNullable); nestedOptional.ifPresent(System.out::println); // 如果嵌套Optional包含非空值,则打印 } } ```使用`Optional`类可以帮助你以更安全、更清晰的方式处理可能为`null`的值,从而减少`NullPointerException`的发生。 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 Java空指针异常处理:Optional类使用 在Java中,`NullPointerException`(空指针异常)是一种常见的运行时异常,它发生在尝试使用`null`引用调用方法或访问对象的属性时。为了避免这种异常,J 迈不过友情╰/ 2024年11月07日 21:27/ 0 赞/ 5 阅读
相关 Java空指针异常处理 在Java中,`NullPointerException`是常见的异常类型,它表示程序尝试访问一个null对象的属性或方法。 以下是一些处理`NullPointerExcep 客官°小女子只卖身不卖艺/ 2024年09月14日 20:03/ 0 赞/ 66 阅读
相关 Java异常处理:空指针异常示例 在Java编程中,空指针异常(NullPointerException)是最常见的一种运行时错误。它发生在尝试访问或者操作一个null对象的时候。 下面是一个简单的空指针异常 水深无声/ 2024年09月06日 04:24/ 0 赞/ 79 阅读
相关 optional 解决空指针_讲讲Java8的Optional类 ![44d6a827792189fcedcd765c35d582be.png][] 前言 Java 8中引入了 `Optional` 类来解决 `NullPointer Bertha 。/ 2023年01月02日 15:19/ 0 赞/ 191 阅读
相关 Java8 Optional 容器类:用于尽量避免空指针异常 Java8 Optional 容器类:用于尽量避免空指针异常 对于Optional容器本身也会抛出空指针,他是直接抛出,用于快速定位,尽量避免空指针。 / 一 谁借莪1个温暖的怀抱¢/ 2022年12月21日 15:54/ 0 赞/ 180 阅读
相关 空指针异常与Optional类 空指针异常与Optional类 参考文章: [(1)空指针异常与Optional类][1_Optional] (2)https://www.cnblogs.com/kyo 矫情吗;*/ 2022年09月09日 02:07/ 0 赞/ 213 阅读
相关 java8 Optional防止空指针异常初探 java8 Optional防止空指针异常初探 import java.util.Optional; public class CeOptional Love The Way You Lie/ 2022年06月07日 04:27/ 0 赞/ 187 阅读
相关 Java Optional空指针处理 摘要: 直到真正了解了空指针异常,才能算一名合格的Java开发人员。在我们逼格闪闪的java码字符生涯中,每天都会遇到各种null的处理,Java8之后提供了一种更优雅的方式来 深藏阁楼爱情的钟/ 2022年05月16日 11:36/ 0 赞/ 665 阅读
还没有评论,来说两句吧...