Java 8可选代码审查

Tim*_*lbe 2 java optional java-8

我只是想检查一下我是否做得对.这是使用可选的正确方法还是可以改进?

String longitudeResult = "Address_Longitude is empty or null;";
String latitudeResult = "Address_Latitude is empty or null;";
if (Optional.ofNullable(location).isPresent()) {
    Optional<Double> longitude = Optional.ofNullable(location.getLongitude());
    Optional<Double> latitude = Optional.ofNullable(location.getLatitude());
    if (longitude.isPresent()) {
        longitudeResult = longitude.get().toString();
    }
    if (latitude.isPresent()) {
        latitudeResult = latitude.get().toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

Zhe*_*lov 10

Optional如果你不使用它的组合器没有意义:

Optional<Location> locationOptional = Optional.ofNullable(location);
String longitudeResult = locationOptional
        .map(Location::getLongitude)
        .map(Object::toString)
        .orElse("Address_Longitude is empty or null;");
String latitudeResult = locationOptional
        .map(Location::getLatitude)
        .map(Object::toString)
        .orElse("Address_Latitude is empty or null;");
Run Code Online (Sandbox Code Playgroud)