Refletindo
Refletir um atributo através do nome (devolverá null se não encontrar):
Class clazz;
Field f = new Mirror().on(clazz).reflect().field("nomeAtributo");
Refletir todos os campos de uma classe (devolverá uma lista vazia se não encontrar fields):
Class clazz;
List<Field> l = new Mirror().on(clazz).reflectAll().fields();
Refletir todos os campos de uma classe que sejam aceitos por um Matcher<Field>(devolverá uma lista vazia se não encontrar fields):
Class clazz;
List<Field> l = new Mirror().on(clazz).reflectAll().fields()
.matching(new SeuProprioMatcher());
Você também pode mapear seus campos para outros tipos:
Class<T> clazz;
List<String> l = new Mirror().on(clazz).reflectAll()
.fields().mappingTo(new SeuProprioMapperDeFieldParaString());