class A {
static A ref;
A() {
ref= this;
throw new Error();
}
public static void main() {
try { new A(); } catch(Throwable t) {}
//AQUI
}
}
Qual vai ser o estado o programa em ‘//AQUI’, dado que ‘A.ref’ guarda uma referencia para um objeto que não foi construido por completo?
public class A {
static A ref;
A() {
ref= this;
throw new Error();
}
public static void main(String [] args) {
try { new A(); } catch(Throwable t) {}
System.out.println(A.ref);
//AQUI
}
}
e apareceu saida sim, com enderecinho e tal. entao recuperou.
louco neh? bem, mas deveria ser isso mesmo.
Sei lá, eu acho que deveria ser comportamento indefinido manter referecia para objetos parcialmente construidos, dado que isso é uma violação dos principios de OO.