bom, coloquei o monte de syso
e fiz o casting para o T pq achei que poderia receber um object e por isso dava esse erro.
Mas como podem ver no console aí…
ta certinho!!!
Era só ler a documentação do método. Ele não vai encontrar o Field porque o método getField só busca atributos públicos
D
d34d_d3v1l
verdade. Desculpe pelo erro.
Mas não faz muito sentido.
Não concorda?
R
Rodrigo_Sasaki
d34d_d3v1l:
verdade. Desculpe pelo erro.
Mas não faz muito sentido.
Não concorda?
Eu acho que faz sim.
Acessar atributos privados via reflection é uma péssima prática, e bastante propensa a erros. Portanto uma maneira de acessar somente os atributos públicos é bastante interessante.
Agora você também pode acessar os Fields que não são públicos se quiser, pode usar o método getDeclaredField
D
d34d_d3v1l
Eu acabei criando um ReflectUtil
com o seguinte método:
Isso te retornará um elemento (encapsula o Field com os métodos de acesso e modificação) com a anotação Id.class. Se quiser o objeto Field pode usar a classe Reflection: