1
Pouvez-vous s'il vous plaît donner un exemple comment transformer cela en utilisant Java 8 facultatif.Transformer la vérification null en Java 8 Facultatif
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);
}
Jusqu'à présent, je fais
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);
Mon humble avis est que 'Optional.ofNullable (foo) .isPresent()' est pire que 'foo! = Null' et' orElse (null) 'est simplement en train de rompre le but d'un' Optional'. J'espère que vous venez de présenter votre question comme ça pour plus de simplicité et que ce n'est pas du vrai code, parce que vous pouvez clairement voir que la deuxième option est plus verbeuse et inutilement complexe que la première. –
Je ne vois pas d'avantage sur une vérification nulle de vanille. Quelqu'un peut-il expliquer les avantages et les cas d'utilisation pour optionnel? – TimSchwalbe
Je vois des avantages à utiliser 'Optional 'comme paramètre de retour. Vous déclarez dans vos interfaces/api que vous renvoyez 'Optional