Javaåå°æºå¶æ¯å¨è¿è¡ç¶æä¸ï¼å¯¹äºä»»æä¸ä¸ªç±»ï¼é½è½å¤ç¥éè¿ä¸ªç±»çææå±æ§åæ¹æ³ï¼å¯¹äºä»»æä¸ä¸ªå¯¹è±¡ï¼é½è½å¤è°ç¨å®çä»»æä¸ä¸ªæ¹æ³åå±æ§ï¼è¿ç§å¨æè·åçä¿¡æ¯ä»¥åå¨æè°ç¨å¯¹è±¡çæ¹æ³çåè½ç§°ä¸ºJavaè¯è¨çåå°æºå¶ãåå°çæ¦å¿µæ¯ç±Smithå¨1982å¹´é¦æ¬¡æåºçï¼ä¸»è¦æ¯æç¨åºå¯ä»¥è®¿é®ãæ£æµåä¿®æ¹å®æ¬èº«ç¶ææè¡ä¸ºçä¸ç§è½åãè¿ä¸æ¦å¿µçæåºå¾å¿«å¼åäºè®¡ç®æºç§å¦é¢åå
³äºåºç¨åå°æ§çç 究ãå®é¦å
被ç¨åºè¯è¨ç设计é¢åæéç¨,并å¨Lispåé¢å对象æ¹é¢åå¾äºæ绩ãå½ç¶åå°æ¬èº«å¹¶ä¸æ¯ä¸ä¸ªæ°æ¦å¿µï¼å®å¯è½ä¼ä½¿æ们èæ³å°å
å¦ä¸çåå°æ¦å¿µï¼å°½ç®¡è®¡ç®æºç§å¦èµäºäºåå°æ¦å¿µæ°çå«ä¹ï¼ä½æ¯ï¼ä»ç°è±¡ä¸æ¥è¯´ï¼å®ä»¬ç¡®å®ææäºç¸éä¹å¤ï¼è¿äºæå©äºæ们çç解ã
Javaåå°æºå¶ä¸»è¦æä¾ä¸é¢å ç§ç¨éï¼
å¨è¿è¡æ¶å¤æä»»æä¸ä¸ªå¯¹è±¡æå±çç±»
å¨è¿è¡æ¶æé ä»»æä¸ä¸ªç±»ç对象
å¨è¿è¡æ¶å¤æä»»æä¸ä¸ªç±»æå
·æçæååéåæ¹æ³
å¨è¿è¡æ¶è°ç¨ä»»æä¸ä¸ªå¯¹è±¡çæ¹æ³
以ä¸ï¼æ们就以å¨æå建对象为ä¾ï¼éè¿ä»£ç æ¥è§£éä¸ä¸åå°ï¼
public class ReflectionTest {
public static void main(String[] args) throws Exception {
// 建ç«å¦ç对象
Student student = new Student();
// 为å¦ç对象èµå¼
student.setStuName("Wanggc");
student.setStuAge(24);
// 建ç«æ·è´ç®æ 对象
Student destStudent = (Student) copyBean(student);
// è¾åºæ·è´ç»æ
System.out.println(destStudent.getStuName() + ":"
+ destStudent.getStuAge());
}
/**
* æ·è´å¦ç对象信æ¯ã
*
* @param from
æ·è´æºå¯¹è±¡
* @param dest
æ·è´ç®æ 对象
* @throws Exception
ä¾å¤
*/
private static Object copyBean(Object from) throws Exception {
// åå¾æ·è´æºå¯¹è±¡çClass对象
Class<?> fromClass = from.getClass();
// åå¾æ·è´æºå¯¹è±¡çå±æ§å表
Field[] fromFields = fromClass.getDeclaredFields();
// åå¾æ·è´ç®æ 对象çClass对象
Object ints = fromClass.newInstance();
for (Field fromField : fromFields) {
// 设置å±æ§çå¯è®¿é®æ§
fromField.setAccessible(true);
// å°æ·è´æºå¯¹è±¡çå±æ§çå¼èµç»æ·è´ç®æ 对象ç¸åºçå±æ§
fromField.set(ints, fromField.get(from));
}
return ints;
}
}
温馨提示:答案为网友推荐,仅供参考