Perché devo dichiarare un local variable
come final
se il mio Inner class
definito all'interno del metodo deve utilizzarlo?Variabili della classe interna e locali
Esempio:
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();
}
}
}
}
Perché la stringa y
deve essere una costante finale? Come influisce?
vedere se questa discussione aiuta http://techtracer.com/2008/04/14/mystery-of-accessibility-in-local-inner-classes/ – kosa
possibile duplicato di [Impossibile riferirsi a una variabile non finale all'interno una classe interna definita in un metodo diverso] (http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in-a- differen) –
[Domanda sulla variabile finale locale in Java] (http://stackoverflow.com/questions/5947352/question-about-local-final-variable-in-java). – Lion