11.5.1Àý¿¡¼´Â ´ÙÇàÈ÷µµ »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö°¡ ¾ø¾ú±â ¶§¹®¿¡ º° ¹«¸® ¾øÀÌ ÇÑ ÁÙÀÇ ÄÚµùÀ¸·Î °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ÇÏÁö¸¸, À̹ø¿¡´Â ¸Å°³º¯¼ö°¡ ÀÖ´Ù°í °¡Á¤ÇØ º¸ÁÒ. ¸¸¾à »ý¼ºÀÚ ¸Þ¼µå°¡ ¸Å°³º¯¼ö¸¦ °¡Áö°í ÀÖ´Â ³ð¹Û¿¡ ¾ø´Ù¸é ¸Å°³º¯¼ö¸¦ »ç¿ëÀÚ°¡ ³Ö¾îÁÖ¾î¾ß ÇÕ´Ï´Ù. ¸Å°³º¯¼ö¸¦ °¡Áø »ý¼ºÀÚ°¡ ¸Å°³º¯¼ö¾øÀÌ È£ÃâµÇ¾îÁö´Â ¹ýÀº ¾øÀ¸´Ï±î¿ä. ÀÚ ±×·¸´Ù¸é, ¾î¶»°Ô ¸Å°³º¯¼ö ÀÖ´Â »ý¼ºÀÚ¸¦ È£ÃâÇÏ´ÂÁö Á÷Á¢ È®ÀÎÇϽñ⠹ٶø´Ï´Ù. Å×½ºÆ®¸¦ À§Çؼ StringŬ·¡½ºÀÇ ¸Å°³º¯¼ö°¡ ÀÖ´Â »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
n new String(¡°Hello World¡±)
ÀÌ ±¸¹®À» ¸®Ç÷º¼ÇÀÇ ±â¹ýÀ¸·Î ÇØ°áÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
NewObjectTest(ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ¸Å°³º¯¼ö ÀÖ´Â »ý¼ºÀÚ ¸Þ¼µå È£Ãâ) |
import java.lang.reflect.*; public class NewObjectTest2{ public static void main(String[] arg) throws ClassNotFoundException, InstantiationException, IllegalAccessException ,NoSuchMethodException, InvocationTargetException { Class c = String.class; Class[] argType = new Class[]{String.class}; Constructor con = c.getConstructor(argType); Object[] initArg = new Object[]{"Hello World"}; Object obj = con.newInstance(initArg); if(obj instanceof String){ System.out.println("StringÇüÀÌ ¸Â½À´Ï´Ù.:" + obj); } else { System.out.println("VectorÇüÀÌ ¾Æ´Õ´Ï´Ù."); } } } |
C:\JavaExample\11>javac NewObjectTest2.java C:\JavaExample\11>java NewObjectTest2 StringÇüÀÌ ¸Â½À´Ï´Ù.:Hello World |
ÇüÀÌ ¹ºÁö ¸ð¸£´Â Class c°¡ ÀÖ´Ù´Â °¡Á¤ ÇÏ¿¡, ¸Å°³º¯¼ö°¡ StringÇü ÇϳªÀÎ »ý¼ºÀÚ ¸Þ¼µå¸¦ Class c¿¡¼ ã½À´Ï´Ù. ã´Â ÀÛ¾÷Àº ´ÙÀ½°ú °°Àº Äڵ带 ÀÌ¿ëÇÏ°Ô µË´Ï´Ù.
n Class[] argType = new Class[]{String.class};//¸Å°³º¯¼öÇüÀÇ ¹è¿
n Constructor con = c.getConstructor(argType);
±×¸®°í ³ª¼, Constructor conÀ» ÀÌ¿ëÇÏ¿© newInstance¸Þ¼µå¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. ¹°·Ð newInstance¸Þ¼µå´Â ConstructorŬ·¡½ºÀÇ ¸â¹ö¸Þ¼µåÀ̸ç newInstanceÇÒ ¶§ ÇÊ¿äÇÑ ¸Å°³º¯¼ö¸¦ ³Ö¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù.
n Object[] initArg = new Object[]{"Hello World"};//»ý¼ºÀÚ ¸Å°³º¯¼ö ¹è¿
n Object obj = con.newInstance(initArg);
ÇÊ¿äÇÑ ¸Å°³º¯¼ö´Â Object¹è¿ ÇüÅ·Πµé¾î°¡±â ¶§¹®¿¡ ÇÊ¿äÇÑ ¸¸Å ¸¸µå½Ã¸é µË´Ï´Ù. ±×¸®°í, Object¹è¿À» newInstanceÀÇ ¸Å°³º¯¼ö·Î ³Ö¾îÁÖ¸é ¸ðµç ÀÛ¾÷Àº ³¡ÀÌ ³³´Ï´Ù. ±×¸®°í ½ÇÁ¦·Î ¸¸µé¾îÁö´Â È®ÀÎÀýÂ÷´Â ¾Õ¿¡¼µµ ¾ð±ÞÇÑ instanceof¶ó´Â Ű¿öµå¸¦ ÀÌ¿ëÇÏ¿© È®ÀÎÇϰí ÀÖ½À´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ ÀúÀÚ:ÃÖ¿µ°ü |