Optional 方法讲解
package com.atguigu.java;
import org.junit.Test;
import java.util.Optional;
/**
* Optional 方法讲解
*
* of --- get 确定对象不空
* ofNullable --- orElse 对象有可能是空
*
* @author liangqichen
* @create 2021-11-04 15:08
*/
public class OPtionalTest {
@Test
public void test1() {
Optional<Object> op1 = Optional.empty();
if (op1.isPresent()) { // Optional封装的数据是否包含数据
System.out.println("数据为空");
}
// System.out.println(op1.get());
System.out.println(op1); // Optional.empty
System.out.println(op1.isPresent()); // false
}
@Test
public void test2() {
String str = "hello";
// of(T t) 封装数据t生成的Optional对象。要求t不可以空,否则报错
Optional<String> op1 = Optional.of(str); // 封装的对象,要求不能为空
// get() 通常与of()搭配使用。用于获取内部封装的数据
String str1 = op1.get();
System.out.println(str1); // hello
// 如果Optional封装的数据为空,则get方法报错。否则,value不为空时,返回value
}
@Test
public void test3() {
String str = "北京";
//ofNullable(T t) 封装数据t,赋给Optional类内部的value。不要求t非空
Optional<String> str1 = Optional.ofNullable(str);
// orElse(T t1):如果Optional内部的value非空,返回此value值
// 如果value空,则返回t1值
String str2 = str1.orElse("上海");
System.out.println(str2); // 北京
}
}