reflexão Java: Como posso recuperar classes internas anônimas?
-
11-09-2019 - |
Pergunta
Eu tenho uma classe interna anônima dentro de outra classe (SomeClass
).
Ambos os SomeClass.class.getClasses()
e retorno SomeClass.class.getDeclaredClasses()
matrizes vazias.
Eu não poderia encontrar algumas dicas sobre isso em Class
' Javadocs.
Can anônimos classes internas ser recuperada usando o reflexo de alguma forma?
O que mais notáveis ??diferenças entre as classes internas anônimas e classes internas normais?
Solução
Se ele está usando reflexão, é provavelmente uma péssima idéia. Deixando isso de lado, eu acredito que você pode classes internas adicionais em tempo de execução, por isso não faz sentido para classes de lista que pode não ter sido pensado ainda. Listando as classes carregadas no momento seria, eu acho, necessitam passar por agentes Java ou similar.
anônimos classes internas tornaram-se nomes, um método de inclusão e campos sintéticos adicionais para copiar variáveis ??locais externas que foram copiados. Uma classe é praticamente o mesmo que o outro em tempo de execução. Lembre-se que 1.1 introduziu classes internas, mas arquivos de classe têm pouco mudou desde 1.0.
Outras dicas
Você poderia tentar uma pesquisa de força bruta da classe $ 1 ... Classe $ n até que você não pode encontrar qualquer mais.