Because Meta Programming must be easy.

Reflecting

Reflect a field by name (will return null if not found):
Class clazz;
Field f =
new Mirror().on(clazz).reflect().field("fieldName");
Reflecting all fields of a class (will return an empty list if none found):
Class clazz;
List<Field> l =
new Mirror().on(clazz).reflectAll().fields();
Reflecting all fields of a class that matches a Matcher<Field> (will return an empty list if none found):
Class clazz;
List<Field> l =
new Mirror().on(clazz).reflectAll().fieldsMatching(new YourCustomMatcher());