İki kod örneğini alın:
if(optional.isPresent()) {
//do your thing
}
if(variable != null) {
//do your thing
}
En belirgin farkı söyleyebileceğim kadarıyla, İsteğe Bağlı'nın ek bir nesne oluşturmayı gerektirdiğidir.
Ancak, birçok kişi hızla Seçeneklileri kabul etmeye başladı. Opsiyonları null kontrolüne karşı kullanmanın avantajı nedir?
if
ifadeler sooooo son on yıl ve herkes şimdi monad soyutlamalar ve lambdas kullanıyor.
if(x.isPresent) fails_on_null(x.get)
, tip sisteminden çıkmanız ve kodun koşulla işlev çağrısı arasındaki (kuşkusuz kısa) mesafe boyunca "kafanızda" kırılmayacağının garantisini vermek zorundasınız. Gelen optional.ifPresent(fails_on_null)
tipi sistemin sizin için bu garanti vermez ve endişe gerekmez.
Optional.ifPresent
(ve diğer çeşitli Java yapılarının) kullanımındaki ana kusur , yalnızca son değişkenleri etkili bir şekilde değiştirebilmeniz ve kontrol edilen istisnalar alamamanızdır. ifPresent
Maalesef bu sık sık kaçınmak için yeterli bir sebep .