Java的Optional类有以下功能:
-
提供了一种容器类型,可以用来包装可能为空的值。
-
可以通过静态方法创建Optional对象,例如Optional.of(value)、Optional.ofNullable(value)。
-
可以使用isPresent()方法判断Optional对象是否包含值,并使用get()方法获取包装的值。
-
可以使用orElse(value)方法指定默认值,在Optional对象为空时返回默认值。
-
可以使用orElseGet(Supplier extends T> supplier)方法指定一个Supplier接口的实现来提供默认值。
-
可以使用orElseThrow(Supplier extends X> exceptionSupplier)方法在Optional对象为空时抛出指定的异常。
-
可以使用ifPresent(Consumer super T> consumer)方法判断Optional对象是否包含值,并在包含值时使用指定的Consumer接口的实现处理值。
-
可以使用filter(Predicate super T> predicate)方法对Optional对象的值进行过滤,并返回一个新的Optional对象。
-
可以使用map(Function super T, ? extends U> mapper)方法对Optional对象的值进行映射,并返回一个新的Optional对象。
-
可以使用flatMap(Function super T, Optional> mapper)方法对Optional对象的值进行映射,并返回一个新的Optional对象,如果映射结果为Optional.empty()则返回空的Optional对象。
-
可以使用orElseThrow()方法在Optional对象为空时抛出NoSuchElementException异常。
-
可以使用equals()方法判断两个Optional对象是否相等。
-
可以使用hashCode()方法获取Optional对象的哈希码。
-
可以使用toString()方法将Optional对象转换为字符串表示。
通过使用Optional类,可以有效地处理可能为空的值,减少空指针异常的发生,并提高代码的可读性和健壮性。