Reflexe umožňuje programu prozkoumávat a manipulovat třídy, metody a pole za běhu — i ty, které byly neznámé v čase kompilace. Anotace připojují metadata ke kódu, která čtou nástroje a frameworky (často prostřednictvím reflexe) a řídí tak jejich chování. Dohromady poháňejí velkou část Java framework "magie" (Spring, JPA, JUnit).
Reflexe — kontrola a vyvolání za běhu
Class<?> clazz = Class.forName();
(Field field : clazz.getDeclaredFields()) {
System.out.println(field.getName() + + field.getType());
}
(Method method : clazz.getDeclaredMethods()) {
System.out.println(method.getName());
}
clazz.getDeclaredConstructor().newInstance();
clazz.getMethod(, String.class);
m.invoke(instance, );
clazz.getDeclaredField();
f.setAccessible();
