JavaÖÐnewºÍnewInstanceµÄÇø±ð
ÔÚJavaÖУ¬Ê¹ÓÃnew¹Ø¼ü×ÖºÍClass.forName("a.class.Name").newInstance¶¼¿ÉÒÔ´´½¨¶ÔÏó£¬ËüÃÇÓÖÓÐÊ²Ã´Çø±ðÄØ£¿
1¡¢ÀàµÄ¼ÓÔØ·½Ê½²»Í¬¡£
ÔÚÖ´ÐÐClass.forName("a.class.Name")ʱ£¬JVM»áÔÚclassapthÖÐÈ¥ÕÒ¶ÔÓ¦µÄÀಢ¼ÓÔØ£¬ÕâʱJVM»áÖ´ÐиÃÀàµÄ¾²Ì¬´úÂë¶Î¡£ÔÚʹÓÃnewInstance()·½·¨µÄʱºò£¬±ØÐë±£Ö¤Õâ¸öÀàÒѾ¼ÓÔØ²¢ÇÒÒѾÁ¬½ÓÁË£¬¶øÕâ¿ÉÒÔͨ¹ýClassµÄ¾²Ì¬·½·¨forName()À´Íê³ÉµÄ¡£
ʹÓùؼü×Önew´´½¨Ò»¸öÀàµÄʱºò£¬Õâ¸öÀà¿ÉÒÔûÓб»¼ÓÔØ£¬Ò»°ãÒ²²»ÐèÒª¸ÃÀàÔÚclasspathÖÐÉ趨£¬µ«¿ÉÄÜÐèҪͨ¹ýclasslaoderÀ´¼ÓÔØ¡£
2¡¢Ëùµ÷ÓõĹ¹Ôì·½·¨²»¾¡Ïàͬ¡£
new¹Ø¼ü×ÖÄܵ÷ÓÃÈκι¹Ôì·½·¨¡£
newInstance()Ö»Äܵ÷ÓÃÎ޲ι¹Ôì·½·¨¡£
3¡¢Ö´ÐÐЧÂʲ»Í¬¡£
new¹Ø¼ü×ÖÊÇÇ¿ÀàÐ͵ģ¬Ð§ÂÊÏà¶Ô½Ï¸ß¡£
newInstance()ÊÇÈõÀàÐ͵ģ¬Ð§ÂÊÏà¶Ô½ÏµÍ¡£
¼ÈȻʹÓÃnewInstance()¹¹Ôì¶ÔÏóµÄµØ·½Í¨¹ýnew¹Ø¼ü×ÖÒ²¿ÉÒÔ´´½¨¶ÔÏó£¬ÎªÊ²Ã´ÓÖ»áʹÓÃnewInstance()À´´´½¨¶ÔÏóÄØ£¿
¼ÙÉ趨ÒåÁËÒ»¸ö½Ó¿ÚDoor£¬¿ªÊ¼µÄʱºòÊÇÓÃľÃŵ쬶¨ÒåΪһ¸öÀàWoodenDoor£¬ÔÚ³ÌÐòÀï¾ÍÒªÕâÑùд Door door = new WoodenDoor() ¡£¼ÙÉèºóÀ´Éú»îÌõ¼þÌá¸ß£¬»»Îª×Ô¶¯ÃÅÁË£¬¶¨ÒåÒ»¸öÀàAutoDoor£¬Õâʱ³ÌÐò¾ÍÒª¸ÄдΪ Door door = new AutoDoor() ¡£ËäȻֻÊǸĸö±êʶ·û£¬Èç¹ûÕâÑùµÄÓï¾äÌØ±ð¶à£¬¸Ä¶¯»¹ÊÇͦ´óµÄ¡£ÓÚÊdzöÏÖÁ˹¤³§Ä£Ê½£¬ËùÓÐDoorµÄʵÀý¶¼ÓÉDoorFactoryÌṩ£¬Õâʱ»»Ò»ÖÖÃŵÄʱºò£¬Ö»ÐèÒª°Ñ¹¤³§µÄÉú²úģʽ¸Äһϣ¬»¹ÊÇÒª¸ÄÒ»µã´úÂë¡£
¶øÈç¹ûʹÓÃnewInstance()£¬Ôò¿ÉÒÔÔÚ²»¸Ä±ä´úÂëµÄÇé¿öÏ£¬»»ÎªÁíÍâÒ»ÖÖDoor¡£¾ßÌå·½·¨ÊǰÑDoorµÄ¾ßÌåʵÏÖÀàµÄÀàÃû·Åµ½ÅäÖÃÎļþÖУ¬Í¨¹ýnewInstance()Éú³ÉʵÀý¡£ÕâÑù£¬¸Ä±äÁíÍâÒ»ÖÖDoorµÄʱºò£¬Ö»¸ÄÅäÖÃÎļþ¾Í¿ÉÒÔÁË¡£Ê¾Àý´úÂëÈçÏ£º
String className = ´ÓÅäÖÃÎļþ¶ÁÈ¡DoorµÄ¾ßÌåʵÏÖÀàµÄÀàÃû;
Door door = (Door) Class.forName(className).newInstance();
ÔÙÅäºÏÒÀÀµ×¢ÈëµÄ·½·¨£¬¾ÍÌá¸ßÁËÈí¼þµÄ¿ÉÉìËõÐÔ¡¢¿ÉÀ©Õ¹ÐÔ¡£
Ïà¹ØÎĵµ£º
1¡¢ÀàÐÍÄ£°å Class£º
ÎïÒÔÀà¾Û£º
ÎÒÃÇ¿ÉÒÔÓÃclass Person{ } class Animal{ }À´ÃèÊöÒ»ÀàÈË»òÒ»ÀදÎ
ÄÇôÔÙÏëһϣ¬ÎÒÃÇÊDz»ÊÇ¿ÉÒÔÓÃclass Class{ } À´³éÏóÃèÊöÀàÄØ£¿
´ð°¸Ê±¿ÉÒԵģ¬Õâ¾ÍÊÇjdkÖÐµÄ Class ÀࣨÀàÐ ......
ת×ÔInfoQ£¬×÷Õß Charles Humble ÒëÕß ÕÅÁú
±¾ÔÂ3ÈÕSunµÄJ2SE 5.0ʵÏÖÒÑÖÕ½á·þÎñÖÜÆÚ£¨End of Service Life£¬¼´EOSL£©£¬ÕâÒ»ÌìÒ²ÊÇ×îºóµÄÒ»´Î5.0¸üз¢²¼ÈÕÆÚ£¨J2SE 5.0 Update 22£©¡£Ñ°ÇóSunÖ§³ÖµÄÓû§¿ÉÒÔÑ¡ÔñÉý¼¶µ½Java 6»òÊǶ©ÔÄSunµÄJava for Business³ÌÐò¡£
SunÌṩÁ˶àÖÖ¶àÑùµÄJava¸¶·ÑÖ§³Ö¡£Java¾µäÖ§³Ö£ ......
ÕâÊÇÒ»¸öC/SÖ®¼äͨÐŵÄÀý×Ó,ÔÚJDK1.4ϲâÊÔͨ¹ý.
//·þÎñÆ÷¶ËÔ´³ÌÐòtcpserver.java
import java.io.*;
import java.net.*;
public class tcpserver
{
public static void main(String[] args) throws IOException
{
......
ÍÆ¼öÒ»¸ö¾ø¶Ô¾µäµÄÊÓÆµ£¬²»ºÃµÄÄÃשÅÄÎÒ°¡
ÎÞÒâÖÐÔÚÍøÉÏÏÂÔØµ½Ò»Ì×ÊÓÆµ£¬ÒѾȫ³ÌÌýÍ꣬¸Ð¾õ·Ç³£²»´í¡£´ÓJava»ù´¡¿ªÊ¼ÑÐò½¥½ø£¬ÓÉdzÈëÉÊÓÆµÖв»½ö¾«
±ÙµÄ½²½âÁËJava¿ª·¢µÄ֪ʶ£¬¶øÇÒÈÚÈëÁ˺ܶàѧϰ·½·¨µÄ½²½âºÍ±à³Ì˼ÏëµÄÒýµ¼£¬×ÛºÏÀ´Ëµ¿ÉÒÔÈË¿°³ÆÈëÃŵľµäÖ®
×÷!
ÌØ±ðÍÆ¼ö¸ø´ó¼Ò£¬´ó¼Ò¹²Í¬½ø²½¡£°ÑÍøÖ·¸ø´ ......
±¾ÔÂ3ÈÕSunµÄJ2SE 5.0ʵÏÖÒÑÖÕ½á·þÎñÖÜÆÚ£¨End of Service Life£¬¼´EOSL£©£¬ÕâÒ»ÌìÒ²ÊÇ×îºóµÄÒ»´Î5.0¸üз¢²¼ÈÕÆÚ£¨J2SE 5.0 Update 22£©¡£Ñ°ÇóSunÖ§³ÖµÄÓû§¿ÉÒÔÑ¡ÔñÉý¼¶µ½Java 6»òÊǶ©ÔÄSunµÄJava for Business³ÌÐò¡£
SunÌṩÁ˶àÖÖ¶àÑùµÄJava¸¶·ÑÖ§³Ö¡£Java¾µäÖ§³Ö£¨classic support£©º¸ÇÁË´Ó²úÆ··¢²¼Ö®ÈÕÆð3Äê ......