Pergunta

Eu comecei a ler os Enterprise Java Beans 3,0 livro por Bill Burke e Richard Monson-Haefel e no capítulo 4 que tem este código

@PersistenceContext(unitName="titan") private EntityManager manager;

A classe, em seguida, tem métodos que acessam esse campo (que nunca é definido no construtor e não tem nenhum método setter). Então como é que o recipiente definir este campo privada com uma instância real? Estou assumindo que há um pouco de magia reflexão e / ou bytecode acontecendo - como isso é feito

Foi útil?

Solução

getDeclaredFields () retornará uma lista dos campos declarado na classe.

Container percorre todos os campos de verificação para as anotações apropriadas. Uma vez que o campo necessário é encontrado, ele invoca setAccessible (true) nesse campo, a fim de ser capaz de manipulá-lo a partir do código onde normalmente não teria sido acessível.

Outras dicas

manager.getClass().getDeclaredFields()

Será que você obtenha acesso aos campos. Veja o javadocs aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top