您能举一个例子,说明如何使用Java 8 Optional来转换它.
Motion motion = new Motion();
if (null!= site.getLocation() && null != site.getLocation().getLatitude() && null != site.getLocation().getLongitude()) {
Point p = GeoJson.point(site.getLocation().getLatitude(), site.getLocation().getLongitude());
motion.setLocation(p);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我这样做
Motion motion = new Motion();
Optional<Location> locationOptional = Optional.ofNullable(site.getLocation());
Point p = locationOptional
.map(location -> {
if (Optional.ofNullable(location.getLatitude()).isPresent() && Optional.ofNullable(location.getLongitude()).isPresent()) {
return GeoJson.point(location.getLatitude(), location.getLongitude());
}
return null;
})
.orElse(null);
motion.setLocation(p);
Run Code Online (Sandbox Code Playgroud)
GeoJson geoJson =
Optional.ofNullable(s.getLocation())
.filter(l -> l.getLatitude() != null)
.filter(l -> l.getLongitude() != null)
.map(l -> GeoJson.point(l.getLatitude(), l.getLongitude()))
.orElse(null);
Run Code Online (Sandbox Code Playgroud)