[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Classloading - completando
- Subject: Classloading - completando
- From: Giuliano Mega <megag@xxxxxxxxxxxx>
- Date: Sun, 19 Dec 2004 21:38:40 -0200
Só para completar - o ClassCastException é jogado porque a VM deve
checar o "tipo dinâmico" da referência e o "tipo dinâmico" do objeto
retornado e fazer um teste simplão, no momento da atribuição, para
determinar se os tipos dinâmicos em ambos os lados da expressão coincidem.
Abraços,
Giuliano
> Bem, daí o código de A faz uma referência à classe B que, por
> malícia, é delegada por L1 ao loader L2. O loader L2 carrega a classe
> B e encontra nela uma referência ao texto da classe C1 e a carrega. O
> tipo dinâmico da referência retornada pelo método G passa a ser <C1,
> L2>. Quando o código malicioso tenta atribuir a uma referência do tipo
> dinâmico <C1, L1> um objeto do tipo dinâmico <C1, L2>, ele toma um
> ClassCastException.