Reflection ஒரு program-ஐ runtime-இல் classes, methods, மற்றும் fields-ஐ ஆய்வு செய்து கையாள அனுமதிக்கிறது — compile time-இல் அறியப்படாதவற்றைக் கூட. Annotations code-க்கு metadata-ஐ இணைக்கின்றன, அதை tools மற்றும் frameworks படிக்கின்றன (பெரும்பாலும் reflection மூலம்) behavior-ஐ இயக்க. ஒன்றாக அவை Java-வின் framework "மாயத்தின்" பெரும்பகுதியை இயக்குகின்றன (Spring, JPA, JUnit).
Reflection — runtime ஆய்வு மற்றும் invocation
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();
