Porque meta-programação deve ser fácil.

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().fieldsMatching(new SeuProprioMatcher());