deu pra entender sim kra…mas eu tenho um Field que representa uma collection
como eu pego a collection em sim que eh representado por esse field para interar sobre ela para verificar os atributos nos objetos que estão nela??
tipo tenho um field
Field field
field.getType() = ArrayList;
como eu tenho acesso aos objetos dentro deste arraylist??
Ah! Bom , isso é só fazer …
List lista = (List) field.get(instancia);
onde field é o campo obtido dos metados e instancia é um objeto da classe em causa. E depois usa o outro código que falei.
Isto só funciona se vc tiver um objeto da classe.
Se não tiver, ou se quiser usar apenas os metadados, o que vc quer fazer não é possivel. A solução nesse caso seria criar um anotação que especifica a classe , ou super-classe, dos itens na lista algo assim
public class EstaClasse {
@ListItemType (type=OutraClasse.class)
private List<T extends OutraClasse> lista;
}
A funcionalidade disto é limitada,pois obriga T a ser de uma certa classe,o que pode não ser possivel/desejável. Dependendo do que vc está tentando fazer pode ser a solução ou não.