JAVA ·´Éä
Äú²éѯµÄ¹Ø¼ü´ÊÊÇ£ºnewinstance object initargs ¡£Èç¹û´ò¿ªËÙ¶ÈÂý£¬¿ÉÒÔ³¢ÊÔ¿ìËٰ棻Èç¹ûÏë±£´æ¿ìÕÕ£¬¿ÉÒÔÌí¼Óµ½ËѲء£
(°Ù¶ÈºÍÍøÒ³http://bbs.iaiai.com/forum/read.php?tid=2690µÄ×÷ÕßÎ޹أ¬²»¶ÔÆäÄÚÈݸºÔð¡£°Ù¶È¿ìÕÕ½÷ÎªÍøÂç¹ÊÕÏʱ֮Ë÷Òý£¬²»´ú±í±»ËÑË÷ÍøÕ¾µÄ¼´Ê±Ò³Ãæ¡£)
Ö÷Ìâ : javaµÄ·´Éä»úÖÆ ʹÓõÀ¾ß©® ¸´ÖÆÁ´½Ó ©®ä¯ÀÀÆ÷Êղة®´òÓ¡
javaµÄ·´Éä»úÖÆ
javaµÄ·´Éä»úÖÆÒ»
ÔÚjavaÀïÃæÓÐÒ»ÖÖ·´Éä»úÖÆreflect£¬ÕâÊÇÆäËüÓïÑÔËùûÓеģ¬¿ÉÒÔ¶¯Ì¬´´½¨¶ÔÏóºÍ·½·¨£¬»¹ÓгÉÔ±±äÁ¿µÈ:
Ò».¶ÔÏó¶¯Ì¬´´½¨µÄ·½·¨ÈçÏ£º
ÎÒÃÇÐèҪʹÓõÄÓÐClassÀàºÍConstructorÀà,»¹ÓÐMethodºÍFieldÀà,¾ßÌåµÄʹÓ÷½·¨ÈçÏ£º
1.ʹÓÃClassÀàµÄClass.forName(String className)·½·¨µÃµ½Ò»¸öClass¶ÔÏó£¬
eg: Class aClass=Class.forName(Foo.class.getName());
»òÕß Class aClass=Class.forName("Foo");
2.µÃµ½Ò»¸öClass¶ÔÏóÖ®ºó£¬ÎÒÃÇ»¹ÐèÒª°ÑËüת»»³ÉÎÒÃÇÐèÒªµÄÀàÐͶÔÏó£¬
eg: Foo foo=(Foo)aClass.newInstance();
×¢Òâ´ËµØ·½µÄnewInstance()·½·¨Ö»Äܵ÷ÓÃFooÀàµÄ¹«ÓÐÎ޲ι¹Ô캯Êý£¬Èç¹ûûÓй¹Ô캯Êý
ÔòʹÓø¸ÀàµÄ¹«ÓÐÎ޲ι¹Ô캯Êý£¬Èç¹û±»ÖØÐ´ÁË£¬Ôò»á´´½¨¶ÔÏóʧ°Ü¡£
3.µÃµ½Á˶ÔÏóÖ®ºóÎÒÃǾͿÉÒÔÈÎÒâ°Ú²¼ËýÁË¡£
4.Èç¹ûÎÒÃǵĹ¹Ô캯ÊýÀïÃæÐèÒª´«Èë²ÎÊý£¬Ôõô°ì£¿
ÕâʱºòÎÒÃǾÍÐèҪʹÓÃConstructorÀàÁË£¬´´½¨·½·¨ÈçÏ£º
eg: Constructor ctor = aClass.getDeclaredConstructor(Class[] parameterTypes);
Èç¹ûÎÒÃÇÓÐÕâÑùÒ»¸öÀàÐèÒª¶¯Ì¬´´½¨¶ÔÏó£º
public class BB {
private int baby = 9;
public BB(int b) {
baby = b;
}
/**
* @return Returns the baby.
*/
public int getBaby() {
return baby;
}
/**
* @param baby
* The baby to set.
*/
public void setBaby(int baby) {
this.baby = baby;
}
}
ÄÇôÎÒÃÇÈçºÎÀ´×öÄØ£¿
Integer[] os = new Integer[1];
os[0] = new Integer(6);
Class cls = Class.forName(BB.class.getName());
Constructor ctor = cls.getDeclaredConstructor((new Class[] { int.class }));
BB bbb = (BB) ctor.newInstance(os);
System.out.println(bbb.getBaby());
¶þ.·½·¨µÄ¶¯Ì¬´´½¨£º
¼ÙÉèÉÏÃæµÄBBÀàÐèÒª¶¯Ì¬´´½¨getBaby()·½·¨£¬ÎÒÃǸÃÔõô×ö£¿ÕâʱºòÎÒÃÇÐèҪʹÓõ½
MethodÀàÁË£º
1.¶¨ÒåÒ»¸ö·½·¨m:
eg: Class cls = Cla
Ïà¹ØÎĵµ£º
Java ¶àÏ̱߳à³ÌÖ®Áù£ºÏß³ÌÖ®¼äµÄͨÐÅ£¨¸½Ô´´úÂ룩
Ô´´úÂëÏÂÔØ
¶àÏ̱߳à³ÌÖУ¬Ïß³ÌÖ®¼äµÄͨÐÅÊÇÒ»¸ö±È½Ï¸´ÔÓµÄÎÊÌâ¡£´ó¼ÒÍùÍù¸ã²»¶®Ê²Ã´ÊǾºÕù×ÊÔ´£¿Ê²Ã´Ê±ºò¿¼ÂÇͬ²½£¿Ôõô½øÐÐͬ²½£¿Ê²Ã´ÊÇÏß³ÌͨÐÅ£¿Ôõô½øÐÐͨÐÅ£¿ºÜ
¶àÅóÓÑÃæÊÔµÄʱºò¶¼Óöµ½¹ýÕâÑùÀàËÆµÄÒ»¸ö±à³ÌÌ⣺¸ø¶ ......
ÏÈд³ÌÐò£¬ÔÚÀ´½âÊͼòµ¥¹¤³§ºÍ¹¤³§·½·¨Ä£Ê½¡£
1¡¢¶¨ÒåÒ»¸öÆû³µ½Ó¿Ú
package com.beckham.factory;
/**
* @author ×÷Õß<Beckham>
* Email:gaowm0207@gmail.com
* Jan 26, 2010 2:35:15 PM
* Version:1.0
*/
public interface Car {
public void start() ;
}
½Ó¿ÚÀïÃæ¶¨ÒåÒ»¸ö·½·¨£ºstart( ......
Java ¶àÏ̱߳à³ÌÖ®Æß£ºËÀËø£¨¸½Ô´´úÂ룩
Ô´´úÂëÏÂÔØ
¶àÏ̱߳à³ÌÖУ¬Ïß³ÌËÀËøÒ²ÊÇÒ»¸ö±È½ÏÓÐȤµÄÎÊÌ⡣Ȼ¶øËÀËø·¢ÉúµÄ¿ÉÄÜÐÔºÜС£¬ÕýÒòÈç´Ë£¬´ó¼Ò¿ÉÄܶԴ˲»ÊǺÜÊìϤ¡£µ«ÊÇËÀËø²¢²»ÊDz»ÖØÒª£¬ÒòΪËüȷȷʵʵ´æÔÚ×Å£¬ËæÊ±»á³öÏÖÔÚÎÒÃǵijÌÐòÖ®ÖС£ºÜ¶àÅóÓÑÃæÊÔµÄʱºò¶¼Óöµ½¹ýÕâ ......
ÐòÁл¯µÄ¹ý³Ì¾ÍÊǽ«¶ÔÏóдÈë×Ö½ÚÁ÷ºÍ´Ó×Ö½ÚÁ÷ÖжÁÈ¡¶ÔÏó¡£½«¶ÔÏó״̬ת»»³É×Ö½ÚÁ÷Ö®ºó£¬¿ÉÒÔÓÃjava.io°üÖеĸ÷ÖÖ×Ö½ÚÁ÷ÀཫÆä±£´æµ½ÎļþÖУ¬¿ÉÒÔͨ¹ý¹ÜµÀ»òÏ̶߳ÁÈ¡£¬»òͨ¹ýÍøÂçÁ¬½Ó½«¶ÔÏóÊý¾Ý·¢Ë͵½ÁíÒ»Ö÷»ú¡£¶ÔÏóÐòÁл¯¹¦Äܷdz£¼òµ¥¡¢Ç¿´ó£¬ÔÚRMI¡¢Socket¡¢JMS¡¢EJB¶¼ÓÐÓ¦Ó᣶ÔÏóÐòÁл¯ÎÊÌâÔÚÍøÂç±à³ÌÖв¢²»ÊÇ×¶¯ÈË ......
ÎÊÌâÒ»£ºÎÒÉùÃ÷ÁËʲô!
¡¡¡¡String s = "Hello world!";
¡¡¡¡Ðí¶àÈ˶¼×ö¹ýÕâÑùµÄÊÂÇ飬µ«ÊÇ£¬ÎÒÃǵ½µ×ÉùÃ÷ÁËʲô?»Ø´ðͨ³£ÊÇ£ºÒ»¸öString£¬ÄÚÈÝÊÇ“Hello world!”¡£ÕâÑùÄ£ºýµÄ»Ø´ðͨ³£ÊǸÅÄî²»ÇåµÄ¸ùÔ´¡£Èç¹ûҪ׼ȷµÄ»Ø´ð£¬Ò»°ëµÄÈË´ó¸Å»á»Ø´ð´íÎó¡£
¡¡¡¡Õâ¸öÓï¾äÉùÃ÷µÄÊÇÒ»¸öÖ¸Ïò¶ÔÏóµÄÒýÓã¬ÃûΪ“s&r ......