Analizzando alcuni scenario strano nel seguente blocco statico:java: l'accesso a variabili statiche all'interno statico blocco
static {
System.out.println("Inside Static Block");
i=100; // Compilation Successful , why ?
System.out.println(i); // Compilation error "Cannot reference a field before it is defined"
}
private static int i=100;
Mentre stesso codice sta lavorando bene durante l'utilizzo:
static {
System.out.println("Inside Static Block");
i=100; // Compilation Successful , why ?
System.out.println(MyClass.i); // Compiles OK
}
private static int i=100;
Non certo perché variabile di inizializzazione non lo fanno bisogno di accesso variabile usando il nome della classe mentre SOP richiede?
intendevi mostrare un errore in entrambi i blocchi? – Bohemian
@Bohemian Penso che questo sia un errore di copia/incolla. Il secondo blocco non dovrebbe mostrare errori. –
vedere anche http://stackoverflow.com/questions/15820302/recursive-initializer-works-when-i-add-this – ZhongYu