java基础 Optional类(防止空指针的类)
程序员文章站
2022-03-04 11:28:08
...
package Test10月.Test1007;
import org.junit.Test;
import java.util.Optional;
/**
* 功能描述:Optional类-可以防止出现空指针的类,可以为null
* @version 1.0
* @className Optional
* @author: 罗德
* @create: 2020-10-07 18:55
*/
public class OptionalTest {
/**
* 功能描述:实例化的方式:
* 1.of():返回描述给定非空值的可选值。
* 2.ofNullable():如果非空,则返回描述给定值的可选值,否则返回空的可选值。
* 方法参数描述:无
*/
@Test
public void test1() {
TEST test = new TEST();
/**
* public static <T> Optional<T> of(@NotNull T value)
* 返回描述给定非空值的可选值。
*/
Optional<Test10月.Test1007.TEST> optional = Optional.of(test);
System.out.println(optional);//Optional[TEST{name='null'}]
System.out.println("*******************");
test = null;
/**
* public static <T> Optional<T> ofNullable(@Nullable T value)
* 如果非空,则返回描述给定值的可选值,否则返回空的可选值。
*/
Optional<TEST> optional1 = Optional.ofNullable(test);
System.out.println(optional1);//Optional.empty
}
/**
* 功能描述:orElse()
* 如果存在值,则返回该值,否则返回其他值。
* 方法参数描述:无
*/
@Test
public void test2() {
TEST test = new TEST();
System.out.println(test);//TEST{name='null'}
Optional<TEST> optional = Optional.ofNullable(test);
/**
* public T orElse(T other)
* 如果存在值,则返回该值,否则返回其他值。
*/
TEST test2 = optional.orElse(new TEST("lld"));
System.out.println(test2);//TEST{name='null'}
System.out.println("****************");
test = null;
Optional<TEST> optional1 = Optional.ofNullable(test);
//如果test = null;则不会返回null,而是新创建的lld
TEST test3 = optional1.orElse(new TEST("lld"));
System.out.println(test3);//TEST{name='lld'}
}
}
class TEST {
private String name;
public TEST() {
}
public TEST(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "TEST{" + "name='" + name + '\'' + '}';
}
}
上一篇: WPF 绑定数据方式
推荐阅读
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
请教一个相当基础的问题,Java中为什么拥有类可以访问内部类的私有成员? JavaAccessSUN
-
Java中File文件操作类的基础用法
-
浅谈java Properties类的使用基础
-
Java基础篇_有关接口和抽象类的几道练习题(分享)
-
浅谈java Properties类的使用基础
-
Java中StringUtils工具类进行String为空的判断解析
-
Java中StringUtils工具类进行String为空的判断解析
-
Java基础篇_有关接口和抽象类的几道练习题(分享)
-
【Java基础】接口和抽象类之间的对比