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); } }