package com.ayan.cc.mystream;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.junit.jupiter.api.Test;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
public class OptionalTest {
public static School school = new School("荆州职业技术学院",null);
public static School schoolNull;
public static List<School> schoolList =Collections.emptyList();
@Test
public void ifPresent() {
Optional.ofNullable(school).ifPresent(School::showName);
Optional.ofNullable(schoolNull).ifPresent(School::showName);
}
@Test
public void map() {
Optional<Stu> stu = Optional.ofNullable(school.getGrade()).map(Grade::getStu);
if (stu.isPresent()) {
stu.get().showName();
} else {
System.out.println("空对象");
}
}
@Test
public void or() {
Optional.ofNullable(school).orElse(new School("南山大学", null)).showName();
Optional.ofNullable(schoolNull).orElse(new School("南山大学", null)).showName();
Optional.ofNullable(school).orElseGet(School::new);
Optional.ofNullable(schoolNull).orElseThrow(()->new RuntimeException("wrong!"));
}
@Test
public void 综合应用() {
String s = Optional.ofNullable(schoolNull).map(School::getGrade).map(Grade::getStu).map(Stu::getName).orElseGet(()->"未知");
System.out.println(s);
}
@Test
public void 测试空集合() {
}
public static void main(String[] args) {
List<String> s ;
}
@Data
static
class School {
private String name = "敬楠第一高中";
private Grade grade;
School(String name, Grade grade) {
System.out.println(name + "school对象被创建了!");
this.name = name;
this.grade = grade;
}
School() {
System.out.println(name + " 对象被创建了!");
}
public void showName() {
System.out.println(name);
}
}
@Data
class Grade {
private String name = "三年级二班";
private Stu stu;
public void showName() {
System.out.println(name);
}
}
@Data
class Stu {
private String name = "阿三";
public void showName() {
System.out.println(name);
}
}
}