Optional.ofNullable()
时间: 2023-10-12 12:19:12 浏览: 37
`Optional.ofNullable()` 是 Java 8 中 `Optional` 类提供的一个静态方法,它接受一个可能为 `null` 的对象作为参数,并返回一个 `Optional` 对象。如果参数为 `null`,则返回的 `Optional` 对象为 empty,否则返回一个包含参数的 `Optional` 对象。
例如,下面的代码展示了如何使用 `Optional.ofNullable()` 方法来避免空指针异常:
```
String str = null;
Optional<String> optionalStr = Optional.ofNullable(str);
if (optionalStr.isPresent()) {
System.out.println(optionalStr.get());
} else {
System.out.println("str is null");
}
```
在上面的代码中,我们首先将 `str` 赋值为 `null`,然后使用 `Optional.ofNullable()` 方法创建了一个 `Optional` 对象 `optionalStr`。由于 `str` 为 `null`,因此 `optionalStr` 为 empty。我们可以通过调用 `isPresent()` 方法来判断 `optionalStr` 是否包含一个值,如果包含值,则调用 `get()` 方法获取该值,否则输出 "str is null"。
相关问题
Optional.ofNullable
Optional.ofNullable方法是jdk1.8中引入的一个方法,用于创建一个Optional对象。它的源码如下:
private static final Optional<?> EMPTY = new Optional<>();
private Optional() {
this.value = null;
}
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
public static <T> Optional<T> empty() {
@SuppressWarnings("unchecked")
Optional<T> t = (Optional<T>) EMPTY;
return t;
}
public static <T> Optional<T> of(T value) {
return new Optional<>(value);
}
这个方法接受一个参数value,如果value为null,则返回一个空的Optional对象;如果value不为null,则返回一个包含value的Optional对象。通过使用Optional.ofNullable方法,我们可以更方便地处理可能为空的对象,避免了空指针异常的发生。
#### 引用[.reference_title]
- *1* *2* *3* [优雅判空--Optional.ofNullable()方法](https://blog.csdn.net/qq_41834553/article/details/122344988)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
optional.ofnullable
`Optional.ofNullable` 是 Java 8 中的一个 API,用于创建一个可能为空的 Optional 对象。它接受一个对象作为参数,如果该对象不为 null,则返回一个包含该对象的 Optional 对象,否则返回一个空的 Optional 对象。使用 Optional.ofNullable 可以避免空指针异常。例如:
```
String str = null;
Optional<String> optionalStr = Optional.ofNullable(str);
```
在上面的例子中,因为 str 为 null,所以 optionalStr 会被赋值为一个空的 Optional 对象。