Optional.ofNullable(obj),obj不为努力了时,直接调用Optional.of(obj)。此说法正确吗?
时间: 2023-07-28 09:21:20 浏览: 132
不完全正确。
`Optional.ofNullable(obj)` 方法会将一个对象放入 Optional 容器中,如果该对象为 null,则容器为空。而 `Optional.of(obj)` 方法则要求传入的对象参数不能为 null,否则会抛出 NullPointerException 异常。
因此,如果确定一个对象不为 null,可以使用 `Optional.of(obj)` 方法。但如果一个对象可能为 null,应该使用 `Optional.ofNullable(obj)` 方法,以防止 NullPointerException 异常的抛出。
示例代码:
```
String str = "hello";
Optional<String> optional1 = Optional.of(str); // 正确,str 不为 null
Optional<String> optional2 = Optional.ofNullable(str); // 正确,str 不为 null
String nullStr = null;
Optional<String> optional3 = Optional.of(nullStr); // 抛出 NullPointerException 异常
Optional<String> optional4 = Optional.ofNullable(nullStr); // 正确,nullStr 为空
```
因此,对于可能为 null 的对象,应该使用 `Optional.ofNullable(obj)` 方法,而不是直接调用 `Optional.of(obj)` 方法。
阅读全文