Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException)
创建两个实体类 Student和School
/**
* @author qinxun
* @date 2023-06-02
* @Descripion: 学生类
*/
public class Student {
private String name;
private School school;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
}
/**
* @author qinxun
* @date 2023-06-02
* @Descripion: 学校实体类
*/
public class School {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试
如果学生类中没有设置学校对象的话 后面使用学校的数据 就会出现空指针的问题
现在我们使用Optional来处理这种空指针的问题
/**
* @author qinxun
* @date 2023-06-02
* @Descripion: Optional测试
*/
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
// 如果学校数据为空 就设置学校默认值
School school = Optional.ofNullable(student.getSchool()).orElse(new School("新华中学"));
System.out.println(school.getName());
}
}
新华中学
/**
* @author qinxun
* @date 2023-06-02
* @Descripion: Optional测试
*/
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
// 如果学生设置了学校 就获取到这个学校的数据
School school = new School("北京大学");
student.setSchool(school);
// 如果学校数据为空 就设置学校默认值
School schoolData = Optional.ofNullable(student.getSchool()).orElse(new School("新华中学"));
System.out.println(schoolData.getName());
}
}
北京大学