Merhaba Java geliştiricileri,
in advance
JDK8 henüz piyasaya sürülmediğinden (ve şimdilik değil ..) konunun biraz olabileceğini biliyorum, ancak Lambda ifadeleri ve özellikle de Stream olarak bilinen yeni koleksiyon API'siyle ilgili kısım hakkında bazı makaleler okuyordum.
İşte Java Magazine makalesinde verilen örnek (su samuru popülasyon algoritmasıdır ..):
Set<Otter> otters = getOtters();
System.out.println(otters.stream()
.filter(o -> !o.isWild())
.map(o -> o.getKeeper())
.filter(k -> k.isFemale())
.into(new ArrayList<>())
.size());
Sorum şu: Set iç yinelemesinin ortasında su samurlarından biri boşsa ne olur?
Bir NullPointerException atılmasını beklerdim ama belki de hala önceki geliştirme paradigmasında (işlevsel olmayan) takılıp kaldım, bunun nasıl ele alınması gerektiği konusunda biri beni aydınlatabilir mi?
Bu gerçekten bir NullPointerException oluşturursa, özelliği oldukça tehlikeli buluyorum ve yalnızca aşağıdaki gibi kullanılması gerekecek:
- Boş değer olmadığından emin olmak için geliştirici (belki önceki bir .filter kullanarak (o -> o! = Null))
- Uygulamanın hiçbir zaman boş su samuru veya ilgilenilecek özel bir NullOtter nesnesi oluşturmadığından emin olmak için geliştirici.
En iyi seçenek veya başka bir seçenek nedir?
Teşekkürler!