Yuvalanmış sınıflarım ve üst sınıfın bir nesnesine sahip olduğum bir kullanım durumum var. Nth seviyesinde bir değer elde etmek istiyorum. NPE'yi önlemek için bunu elde etmek için alıcıları tekrarlıyorum.Yinelenen get deyimini Java ile değiştirme 8 İsteğe bağlı
class A {
String a1;
String getA1() {
return a1;
}
}
class B {
A a;
A getA() {
return a;
}
}
class C {
B b;
B getB() {
return b;
}
}
class D {
C c;
C getC() {
return c;
}
}
ben sınıfın D
bir nesne d
var ve A
ait String a1
almak istiyorsanız, Numune kodu (varsayarak getters vardır) ne yaptığımı takip ediyor:
String getAValue(D d) {
String aValue = null;
if(d != null && d.getC() != null && d.getC().getB() != null && d.getC().getB().getA() != null) {
aValue = d.getC().getB().getA().getA1();
}
return aValue;
}
Bu tekrarlayan a gerçekten çirkin görünüyor. Java8 İsteğe bağlı kullanarak nasıl önleyebilirim?
DÜZENLEME: Yukarıdaki sınıfları değiştiremiyorum. Bu d nesnesinin servis çağrısı olarak bana döndüğünü varsayalım. Sadece bu alıcılara maruz kaldım.
'eşlemi (D :: getC)' de çalışır. – ZhongYu