के साथ दोहराव प्राप्त स्टेटमेंट को प्रतिस्थापित करना मेरे पास एक उपयोग केस है, जहां मेरे पास कक्षाएं और शीर्ष श्रेणी का ऑब्जेक्ट है। मैं एक मूल्य प्राप्त करना चाहता हूं जो एनएच स्तर पर है। मैं एनपीई से बचने के लिए इसे प्राप्त करने के लिए दोबारा गेटर्स का उपयोग कर रहा हूं। नमूना कोड (यह मानते हुए ही टिककर खेल देखते हैं)जावा 8 वैकल्पिक
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;
}
}
अगर मैं वर्ग D
का एक उद्देश्य d
है, और A
की String a1
प्राप्त करना चाहते हैं, क्या मैं कर रहा हूँ पीछा कर रहा है:
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;
}
यह दोहराव एक बदसूरत लग रहा है। Java8 वैकल्पिक का उपयोग करके मैं इसे कैसे टाल सकता हूं?
संपादित करें: मैं उपरोक्त कक्षाओं को संशोधित नहीं कर सकता। मान लें कि यह डी ऑब्जेक्ट मुझे सेवा कॉल के रूप में वापस कर दिया गया है। मैं केवल इन गेटर्स से अवगत हूं।
'मानचित्र (डी :: getC) 'भी काम करता है, अगर' getC' वापस लौटाया जाता है 'सी'। – ZhongYu