public class A {
private A1 a1;
public A1 getA1() {
return a1;
}
public void setA1(A1 a1) {
this.a1 = a1;
}
}
public class A1 {
private A2 a2;
public A2 getA2() {
return a2;
}
public void setA2(A2 a2) {
this.a2 = a2;
}
}
public class A2 {
private A3 a3;
public A3 getA3() {
return a3;
}
public void setA3(A3 a3) {
this.a3 = a3;
}
}
public class A3 {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
public class App
{
public static void main( String[] args )
{
//需求:通过a3获取其id的值
A a = new A();
A1 a1 = new A1();
a.setA1(a1);
A2 a2 = new A2();
a1.setA2(a2);
A3 a3 = new A3();
a2.setA3(a3);
a3.setId("888");
//普通人的代码
if(null!=a && null!=a.getA1() && null!=a.getA1().getA2()&& null!=a.getA1().getA2().getA3()){
System.out.println(a.getA1().getA2().getA3().getId());
}
//优雅的写法
String s = Optional.ofNullable(a)
.map((k) -> k.getA1())
.map((b) -> b.getA2())
.map((c) -> c.getA3())
.map(d -> d.getId()).orElse("dd");
System.out.println(s);
}
}