A reflection lehetővé teszi egy program számára, hogy futási időben megvizsgáljon és manipuláljon osztályokat, metódusokat és mezőket — még azokat is, amelyek a fordítás időben ismeretlenek. Az annotációk metaadatokat csatolnak a kódhoz, amelyeket az eszközök és keretrendszerek olvasnak (gyakran a reflection révén) a viselkedés vezérléséhez. Együtt működtetik Java keretrendszereinek nagy részét az "agyaggal" (Spring, JPA, JUnit).ű"(Spring, JPA, JUnit).ű.yml, amosztály.jpg, JUnit)./Core Reflection — futási idejű vizsgálat és hívás
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();
