1
Können Sie uns ein Beispiel geben, wie Sie dies mit Java 8 Optional umwandeln können?Null-Überprüfung in Java konvertieren 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);
}
Bis jetzt mache ich das
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);
Meine bescheidene Meinung ist, dass 'Optional.ofNullable (foo) .isPresent()' ist schlimmer als 'foo! = Null' und' orElse (null) 'bricht einfach den Zweck eines' Optional'. Ich hoffe, du hast deine Frage einfach so dargestellt, weil es einfach ist und kein wirklicher Code ist, weil du deutlich sehen kannst, dass die zweite Option ausführlicher und unnütz komplexer ist als die erste. –
Ich sehe keinen Vorteil gegenüber einem Vanille-Null-Check. Kann jemand die Vorteile und Anwendungsfälle für Optional erklären? – TimSchwalbe
Ich sehe Vorteile bei der Verwendung von 'Optional' als Rückgabeparameter. Sie geben in Ihren Schnittstellen/api an, dass Sie 'Optional