फॉरवर्ड रेफरेंस अवलोकन
JShell एक कमांड-लाइन टूल है जो हमें Java स्टेटमेंट्स (सरल स्टेटमेंट्स, कंपाउंड स्टेटमेंट्स, या यहां तक कि पूर्ण मेथड्स और क्लासेस) दर्ज करने, उनका मूल्यांकन करने और परिणाम प्रिंट करने की अनुमति देता है।
फॉरवर्ड रेफरेंस उन कमांड्स को संदर्भित करते हैं जो मेथड्स, वेरिएबल्स, या क्लासेस को संदर्भित करते हैं जो JShell में हमारे द्वारा टाइप किए गए किसी भी कोड में मौजूद नहीं हैं। चूंकि कोड JShell में क्रमिक रूप से दर्ज और मूल्यांकन किया जाता है, ये फॉरवर्ड रेफरेंस अस्थायी रूप से अनसुलझे होते हैं। JShell मेथड बॉडीज, रिटर्न टाइप्स, पैरामीटर टाइप्स, वेरिएबल टाइप्स, और क्लास के भीतर फॉरवर्ड रेफरेंस का समर्थन करता है।
उदाहरण: अनसुलझा फॉरवर्ड रेफरेंस
C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> void forwardReference() {
...> System.out.println(notYetDeclared);
...> }
| created method forwardReference(), however, it cannot be invoked until variable notYetDeclared is declared
jshell> forwardReference()
| attempted to call method forwardReference() which cannot be invoked until variable notYetDeclared is declared
वेरिएबल घोषित करने के बाद
jshell> String notYetDeclared = "variable is declared"
notYetDeclared ==> "variable is declared"
jshell> forwardReference()
variable is declared
फॉरवर्ड रेफरेंस JShell में मेथड्स और क्लासेस को परिभाषित करने की अनुमति देते हैं जो अभी तक घोषित नहीं किए गए वेरिएबल्स या टाइप्स का संदर्भ देते हैं, जिससे इंटरैक्टिव विकास अधिक लचीला हो जाता है।