संभव डुप्लिकेट:
Why inner classes require “final” outer instance variables [Java]?
Why are only final variables accessible in anonymous class?विधि स्थानीय आंतरिक कक्षा केवल अंतिम स्थानीय चर का उपयोग कर सकती है। क्यों?
class Outer{
private String x = "instance variable";
void doStuff(){
String z = "local variable";
class Inner{
public void seeOuter(){
System.out.println("Outer x is : "+ x);
System.out.println("Local variable z is : " + z); //won't compile
}
}
}
}
अंतिम फिक्स के रूप में स्थानीय चर जेड अंकन समस्या:
final String z = "local variable"; //Now inner object can use it.
क्या कोई यह बता सकता है कि क्या हो रहा है?
मुझे पता है कि अगर मैं एक गैर-अंतिम स्थानीय चर का उपयोग करने की कोशिश कर रहा हूं तो यह संकलित क्यों नहीं हो सकता है।
क्या स्थानीय-चरणीय फाइनल बनाने से यह जीवित रहने की अनुमति देता है भले ही विधि पूरी हो जाती है और स्थानीय चर गुंजाइश से बाहर हो जाता है?
क्या अंतिम स्थानीय चर ढेर के बजाय ढेर पर संग्रहीत होते हैं? किसी को भी व्याख्या कर सकते हैं कृपया क्या हो रहा है:
: लेकिन यहां सवाल यह है कि एक विधि-स्थानीय परिवर्तनीय फाइनल को चिह्नित करने से यह सुलभ हो जाता है? – Anu11
@ Anu11 मैं फिर से अंतिम पैराग्राफ पढ़ूंगा। ;) –