Reflection एक program को runtime पर classes, methods, और fields का निरीक्षण और manipulate करने देता है — यहां तक कि उन्हें भी जो compile time पर अज्ञात हैं। Annotations code में metadata जोड़ते हैं जिसे tools और frameworks (अक्सर reflection के माध्यम से) पढ़ते हैं ताकि behavior को संचालित किया जा सके। साथ में वे Java के अधिकांश framework "magic" (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();
