varsa bir alan döndüren veya kendisini çağıran aşağıdaki yöntemi düşünün beklendiği gibi çalışmıyor:Java 8'in OrElse alan bulunana kadar
private Field getField(Class<?> clazz, String p) {
Optional<Field> field = Arrays.stream(clazz.getDeclaredFields())
.filter(f -> p.equals(f.getName()))
.findFirst();
return field.isPresent() ? field.get() : getField(clazz.getSuperclass(), p);
}
bu işe yararken, ben kadar kısaltın düşündüm:
private Field getField(Class<?> clazz, String p) {
return Arrays.stream(clazz.getDeclaredFields())
.filter(f -> p.equals(f.getName()))
.findFirst()
.orElse(getField(clazz.getSuperclass(), p));
}
Ama garip bir şey .orElse
kısmı buna denir gibi görünüyor olmasıdır.
Burada nelerin eksik?
musunuz? – Holger
@Holger Evet Biliyorum, kodu basitleştirmek için bunu bıraktım. – helpermethod