java.lang.IllegalAccessError: tentou acessar o campo ConcreteEntity.instance da classe Entity
java.lang.IllegalAccessError: tentou acessar o campo ConcreteEntity.instance da classe Entity
Ok, então aqui está o acordo. Estou tentando acessarConcreteEntity.instance
que é um campo com o tipo de acesso padrão que existe dentro do padrãoClassLoader
e aEntity.getInstance
é um método que existe em uma criançaClassLoader
.
Agora, tenha em mente que ambos estão no mesmo pacote, no entanto,IllegalAccessError
está sendo jogado. Existe uma solução para este problema que não me envolve realmente carregar a classe Entity dentro do mesmoClassLoader
ComoConcreteEntity
?
0 new #14 <Entity>
3 dup
4 aload_0
5 invokevirtual #18 <Adapter.getInstance>
8 checkcast #20 <sl>
11 getfield #24 <sl.d>
14 invokespecial #25 <Entity.<init>>
17 areturn
O bytecode recuperado via jclasslib at foi a exceção é gerada "Depois de ser compilado".
Obrigado Gamb por limpar o post.