Optional.ofNullable(obj),obj不为Null时直接调用Optional.of(obj)。此说法正确吗?
时间: 2023-07-08 19:15:08 浏览: 135
还在用if(obj!=null)做非空判断,带你快速上手Optional
不完全正确。
`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
```
因此,对于可能为 `null` 的对象,应该使用 `Optional.ofNullable(obj)` 方法,而不是直接调用 `Optional.of(obj)` 方法。
阅读全文