package com.igeek.javase.ch23;
import org.junit.Test;
import java.util.Optional;
/**
* @Description TODO
* @Author 李国勇
* @Date 2023/7/2 23:31
*/
public class OptionalTest {
@Test
public void m1() {
Table table = createTable();
// System.out.println(table.getColumn().getData().getValue());
System.out.println(checkNull2(table));
}
/**
* 检查方法
* @param table
* @return
*/
private String checkNull2(Table table) {
return Optional.ofNullable(table)
.map(table1 -> table1.getColumn())
.map(column -> column.getData())
.map(data -> data.getValue())
//.map(column -> column.getData()).orElseThrow(()->new RuntimeException("参数为 null"));
.orElseGet(() -> getDefaultValue());
}
/**
* 默认方法
* @return
*/
private String getDefaultValue() {
return "上面参数为null";
}
/**
* 构造方法
* @return
*/
private Table createTable() {
Table table = new Table();
Column column = new Column();
Data data = new Data();
data.setValue("123");
column.setData(data);
table.setColumn(column);
return table;
}
}