Reflection jippermettiX programm biex tipprova u tipprevjeni klassiet, metodi u ġelwiet fuq il-runtime — anke dawk li kienu mhux magħrufin waqt il-kompilazzjoni. Annotations jilhqu metadati mal-kodiċi li għodod u frameworks jaqraw (ħafna drabi permezz ta' reflection) biex jmexxu l-imġieba. Flimkien huma jiġġenraw ħafna tal-"maġija" tal-frameworks Java (Spring, JPA, JUnit).
Reflection — prova u invokazzjoni fuq il-runtime
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();
