Optional.ofNullable()方法
时间: 2024-01-05 12:19:07 浏览: 130
Optional.ofNullable()方法是Java 8中的一个方法,用于创建一个Optional对象,该对象可能包含一个非空值,也可能为空。如果传递给ofNullable()方法的参数为null,则返回一个空的Optional对象,否则返回一个包含传递的非空值的Optional对象。
以下是一个使用Optional.ofNullable()方法的例子:
```java
String str = null;
Optional<String> optionalStr = Optional.ofNullable(str);
if (optionalStr.isPresent()) {
System.out.println("String value: " + optionalStr.get());
} else {
System.out.println("String value is null.");
}
```
在上面的例子中,我们首先将一个null字符串传递给Optional.ofNullable()方法,然后检查返回的Optional对象是否包含一个非空值。如果包含,则打印该值,否则打印一个消息表示该值为空。
相关问题
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.of
Optional.ofNullable和Optional.of方法都是Java 8中Optional类的静态方法,用于创建Optional对象。
Optional.ofNullable方法接受一个参数并返回一个Optional对象。如果参数值为null,则返回一个空的Optional对象;否则,返回一个包含参数值的Optional对象。
示例代码:
```java
String name = "John";
Optional<String> optional1 = Optional.ofNullable(name);
System.out.println(optional1); // 输出: Optional[John]
String nullName = null;
Optional<String> optional2 = Optional.ofNullable(nullName);
System.out.println(optional2); // 输出: Optional.empty
```
Optional.of方法接受一个非空的参数并返回一个包含该参数的Optional对象。如果参数值为null,则会抛出NullPointerException异常。
示例代码:
```java
String name = "John";
Optional<String> optional1 = Optional.of(name);
System.out.println(optional1); // 输出: Optional[John]
String nullName = null;
Optional<String> optional2 = Optional.of(nullName); // 抛出NullPointerException异常
```
总结来说,使用Optional.ofNullable方法可以避免对null值进行额外的空指针检查,而不会抛出异常;而使用Optional.of方法则要求参数值非空,否则会抛出异常。