/**
*
*/
package com.gewb.entity;
/**
* @author Bingo.Ge
* @date 2020年6月29日
*/
public class Car {
private String name;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
}
/**
*
*/
package com.gewb.entity;
import java.util.Optional;
/**
* @author Bingo.Ge
* @date 2020年6月29日
*/
public class Person {
private Optional<Car> car;
/**
* @return the car
*/
public Optional<Car> getCar() {
return car;
}
/**
* @param car the car to set
*/
public void setCar(Optional<Car> car) {
this.car = car;
}
}
/**
*
*/
package com.gewb.stream;
import java.security.cert.PKIXRevocationChecker.Option;
import java.util.Optional;
import com.gewb.entity.Car;
import com.gewb.entity.Person;
/**
* @author Bingo.Ge
* @date 2020年6月29日
*/
public class OptionFlatMap {
/**
* @param args
*/
public static void main(String[] args) {
Person person = new Person();
Car car = new Car();
car.setName("PORSCHE");
person.setCar(Optional.of(car));
Optional.ofNullable(getCarNameByOption(null)).ifPresent(System.out::println);
}
private static String getCarNameByOption(Person person) {
return Optional.ofNullable(person).flatMap(Person::getCar).map(Car::getName).orElse("unknow");
}
}