Optional类中的ofNullable()方法是干什么用的?
时间: 2023-11-04 07:56:27 浏览: 54
Optional类中的ofNullable()方法是用来创建一个Optional对象的方法。该方法接收一个参数,即待包装的值,可以是任意类型的对象。如果该值不为null,则将其封装在Optional对象中并返回;如果该值为null,则返回一个空的Optional对象。通过使用ofNullable()方法,可以避免空指针异常。
相关问题
Optional.ofNullable 和 Optional.of 有什么区别?
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]
```
Optional.ofNullable()方法
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对象是否包含一个非空值。如果包含,则打印该值,否则打印一个消息表示该值为空。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)