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类,可以有效地处理可能为空的值,减少空指针异常的发生,并提高代码的可读性和健壮性。