Refleksija programu omogoči, da ob izvajanju inspicira in manipulira razrede, metode in polja — tudi tiste, ki niso znane ob času prevajanja. Anotacije priložijo metapodatke kodi, ki jih orodja in ogrodja berejo (pogosto preko refleksije) za vodenje vedenja. Skupaj poganjajo večino Java ogrodij (Spring, JPA, JUnit).
Refleksija — inspiciranje in priklic med izvajanjem
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();
