Created by
V. Makhnutin
| public class First {
public Second second;
public First(Second second) {
this.second = second;
}
public Second getSecond() {
return second;
}
}
|
| public class Fourth {
private String someString;
public Fourth(String someString) {
this.someString = someString;
}
public String getString() {
return someString;
}
}
|
| public class Second {
private Third third;
public Second(Third third) {
this.third = third;
}
public Third getThird() {
return third;
}
}
|
| import java.util.Optional;
public class Test {
public static void main(String[] args) {
First notNull = new First(new Second(new Third(new Fourth("Not Null String"))));
First nestedNull = new First(new Second(new Third(null)));
System.out.println(get(notNull).orElse("is null"));
System.out.println(get(nestedNull).orElse("is null"));
String test = get(nestedNull).orElse(null);
System.out.println(test);
}
private static Optional<String> get(First first) {
return Optional.ofNullable(first.getSecond())
.map(Second::getThird)
.map(Third::getFourth)
.map(Fourth::getString);
}
}
|
| public class Third {
private Fourth fourth;
public Third(Fourth fourth) {
this.fourth = fourth;
}
public Fourth getFourth() {
return fourth;
}
}
|