Comecei a estudar Java e um código me chamou a atenção:
class OrdemChamada {
static String x = getY();
static String y = "Oi";
public static void main(String[] args) {
System.out.println("antes:" + x);
x = getY();
System.out.println("depois:" + x);
}
static String getY() {
return y;
}
}
Executado na maneira que está temos:
antes:null
depois:Oi
No entanto se adicionarmos a palavra final na declaração de y então o código imprime:
antes:Oi
depois:Oi
Suponho que ao adicionar a palavra final à y faz com que esse atributo seja avaliado primeiro, é isto que está acontecendo? E há um padrão para este comportamento?
[]' Marco.