ofNullable 与of
时间: 2023-10-17 16:26:44 浏览: 39
ofNullable 和 of 都是 Java 8 中 Optional 类的静态方法,用于创建 Optional 对象。
ofNullable 方法会接收一个参数,并根据该参数的值创建相应的 Optional 对象。如果参数值为 null,则返回一个空的 Optional 对象;如果参数值不为 null,则返回一个包含该参数值的 Optional 对象。
示例代码:
```
String str = "CSDN";
Optional<String> optional = Optional.ofNullable(str);
```
of 方法则要求参数值不能为 null,如果传入的参数值为 null,则会抛出 NullPointerException 异常。
示例代码:
```
String str = "CSDN";
Optional<String> optional = Optional.of(str);
```
需要注意的是,使用 of 方法创建 Optional 对象时,要确保传入的参数值不为 null,否则会抛出异常。而使用 ofNullable 方法创建 Optional 对象时,则可以处理参数值为 null 的情况。
相关问题
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方法则要求参数值非空,否则会抛出异常。
ofNullable
ofNullable方法是Optional类中的一个静态方法,用于创建一个Optional对象,并将指定的值作为其值。该方法接受一个参数value,并根据其是否为null来确定Optional对象的值。如果value为null,则返回一个空的Optional对象;如果value不为null,则返回一个包含指定值的Optional对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [jdk1.8中用于判空的Optional.ofNullable()方法](https://blog.csdn.net/mqq2502513332/article/details/128640544)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Optional类中,of()和ofNullable()方法的用法与区别](https://blog.csdn.net/qq_43101900/article/details/124430947)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]