రిఫ్లెక్షన్ ఒక ప్రోగ్రామ్ను రানటైమ్లో క్లాసులు, మెథడ్లు, మరియు ఫీల్డ్లను తనిఖీ చేయడానికి మరియు తారుమారు చేయడానికి అనుమతిస్తుంది — కంపైల్ సమయానికి తెలియని వాటిని కూడా. అనోటేషన్లు కోడ్కు మెటాడేటాను జత చేస్తాయి, సాధనాలు మరియు ఫ్రేమ్వర్క్లు (తరచుగా రిఫ్లెక్షన్ ద్వారా) చదువు విధానం కోసం. కలిసి అవి జావా ఫ్రేమ్వర్క్ "మ్యాజిక్" (Spring, JPA, JUnit) యొక్క చిన్న భాగాన్ని శక్తిని ఇస్తాయి.
రిఫ్లెక్షన్ — రానటైమ్ తనిఖీ మరియు ఆహ్వానం
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();
