1
Java 8を使用してこれを変換する方法の例を教えてください。今までJava 8へのnullチェックの変換オプション
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);
}
私は、私の愚見で `Optional.ofNullable(FOO).isPresent()` FOO 'よりも悪いです!= null`なのでと `ということである。この
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);
を行いますorElse(null) 'は単に' Optional'の目的を破っています。 2番目のオプションが最初のオプションよりも冗長で無駄に複雑であることがはっきりとわかるので、簡単にするために質問を提示して、実際のコードではないことを祈っています。 –
私はバニラのヌルチェックよりも利点がありません。オプションの利点と使用例を説明できる人はいますか? – TimSchwalbe
リターンパラメータとして 'Optional'を使う利点があります。あなたのインターフェイス/ apiで、 'Object'ではなく' Optional