Mentre la ricerca another question, sono stato sorpreso di scoprire che il seguente codice Java viene compilato senza errori:Utilizzando this.var durante l'inizializzazione del var
public class Clazz {
int var = this.var + 1;
}
Nel mio JDK6, var
ottiene inizializzato a 1
.
Il codice precedente ha una semantica ben definita o il suo comportamento non è definito? Se si dice che è ben definito, si prega di citare le parti pertinenti del JLS.
Cosa c'è che non va qui? –
@Sudhanshu: 'var' viene utilizzato per inizializzare' var'. – NPE
Innanzitutto, this.var = 0, quindi lo aggiungi per 1, quindi diventerà 1 –