मुझे local variable
को final
के रूप में घोषित करने की आवश्यकता क्यों है यदि मेरे Inner class
विधि के भीतर परिभाषित करने की आवश्यकता है?आंतरिक वर्ग और स्थानीय चर
उदाहरण:
class MyOuter2 {
private String x = "Outer2";
void doStuff() {
final String y = "Hello World";
final class MyInner {
String z = y;
public void seeOuter() {
System.out.println("Outer x is "+x);
System.out.println("Local variable is "+y);
MyInner mi = new MyInner();
mi.seeOuter();
}
}
}
}
क्यों स्ट्रिंग y
एक अंतिम लगातार होने की जरूरत है? यह कैसे प्रभावित करता है?
देखें कि यह चर्चा http://techtracer.com/2008/04/14/mystery-of-accessibility-in-local-inner-classes/ – kosa
संभावित डुप्लिकेट में मदद करती है [अंदर एक गैर-अंतिम चर का संदर्भ नहीं दे सकता एक आंतरिक वर्ग एक अलग तरीके में परिभाषित] (http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in-a- differen) –
[जावा में स्थानीय अंतिम चर के बारे में प्रश्न] (http://stackoverflow.com/questions/5947352/question-about-local-final-variable-in-java)। http://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html#accessing-members-of-an-enclosing-class: – Lion