Optional.ofNullable 和 Optional.of 有什么区别?
时间: 2024-01-05 09:16:56 浏览: 81
Optional.ofNullable和Optional.of是Java 8中Optional类的两个静态方法,用于创建Optional对象。它们之间的区别在于对于传入的值是否允许为空。
- Optional.ofNullable:接受一个可能为null的值作为参数,并返回一个Optional对象。如果传入的值为null,则返回一个空的Optional对象;否则,将传入的值包装在Optional对象中返回。
示例代码:
```java
String value = null;
Optional<String> optional = Optional.ofNullable(value);
System.out.println(optional); // 输出Optional.empty
value = "Hello";
optional = Optional.ofNullable(value);
System.out.println(optional); // 输出Optional[Hello]
```
- Optional.of:接受一个非空的值作为参数,并返回一个Optional对象。如果传入的值为null,则会抛出NullPointerException。
示例代码:
```java
String value = null;
Optional<String> optional = Optional.of(value); // 抛出NullPointerException
value = "Hello";
optional = Optional.of(value);
System.out.println(optional); // 输出Optional[Hello]
```
阅读全文