हाल ही में मैं स्प्रिंग फ्रेमवर्क का स्रोत कोड पढ़ रहा हूं। कुछ मैं नहीं समझ सकता यहाँ जाता है:जावा टर्नरी ऑपरेटर बनाम/अन्य में <जेडीके 8 संगतता
public Member getMember() {
// NOTE: no ternary expression to retain JDK <8 compatibility even when using
// the JDK 8 compiler (potentially selecting java.lang.reflect.Executable
// as common type, with that new base class not available on older JDKs)
if (this.method != null) {
return this.method;
}
else {
return this.constructor;
}
}
इस विधि वर्ग org.springframework.core.MethodParameter
का एक सदस्य है। टिप्पणियां मुश्किल होने पर कोड को समझना आसान है।
नोट: कोई त्रिगुट अभिव्यक्ति 8 अनुकूलता भी जब JDK 8 संकलक का उपयोग कर (संभावित
java.lang.reflect.Executable
के रूप में आम प्रकार का चयन, कि नए आधार वर्ग पुराने JDKs पर उपलब्ध नहीं के साथ)
क्या JDK < बनाए रखने के लिए इस संदर्भ में टर्नरी अभिव्यक्ति का उपयोग करने और if...else...
का उपयोग करने के बीच अंतर?
फिर जेडीके 1.8 पर कोड जेडीके 1.8 के साथ संकलित कैसे किया जा सकता है। मुझे पता चला है कि कम संस्करण जेडीके के साथ संकलित कोड बिना किसी परेशानी के उच्च संस्करण जेडीके पर चला सकता है। वीसा बनाम? – jddxf
@jddxf सब कुछ ठीक है जब तक आप उचित वर्ग फ़ाइल संस्करण निर्दिष्ट करते हैं और किसी भी कार्यक्षमता का उपयोग नहीं करते जो बाद के संस्करणों में उपलब्ध नहीं है। समस्या होने वाली है, हालांकि यदि इस तरह के उपयोग इस मामले में निहित रूप से होते हैं। – dhke
@jddxf, उपयोग -सोर्स/-टाइटल javac विकल्प –