¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  11Àå Reflection  11.5.1 »ý¼ºÀÚ ¸Å°³º¯¼ö°¡ ¾ø´Â °´Ã¼»ý¼ºÇϱ⠠

 

 

11.5.1 »ý¼ºÀÚ ¸Å°³º¯¼ö°¡ ¾ø´Â °´Ã¼»ý¼ºÇϱâ

 

»ý¼ºÀÚ ¸Å°³º¯¼ö°¡ ¾ø´Â °´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¸ÕÀú ¿©·¯ºÐµéÀº ÀÓÀÇÀÇ ClassŬ·¡½º¸¦ °¡Áö°í ÀÖ´Ù°í »ý°¢ÇϽñ⠹ٶø´Ï´Ù. »ý¼ºÀÚ ¸Þ¼­µå¿¡ ¸Å°³º¯¼ö°¡ ¾ø´Ù´Â °¡Á¤ ÇÏ¿¡ °´Ã¼¸¦ Çϳª »ý¼ºÇÏ·Á°í ÇÕ´Ï´Ù. ¾Æ·¡ÀÇ ¿¹Á¦´Â ±× ¹æ¹ýÀ» Á¦°øÇØ ÁÖ°í ÀÖ½À´Ï´Ù.

 

NewObjectTest(ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© °´Ã¼»ý¼ºÇϱâ)

import java.util.Vector;

public class NewObjectTest{

   public static void main(String[] arg)

   throws ClassNotFoundException, InstantiationException, IllegalAccessException

   {

       Object object = null;

       Class c = Class.forName("java.util.Vector");

       object = c.newInstance();

       if(object instanceof Vector){

          System.out.println("VectorÇüÀÌ ¸Â½À´Ï´Ù.");

       } else {

          System.out.println("VectorÇüÀÌ ¾Æ´Õ´Ï´Ù.");

       }

   }

}

C:\JavaExample\11>javac NewObjectTest.java

C:\JavaExample\11>java NewObjectTest

VectorÇüÀÌ ¸Â½À´Ï´Ù.

 

¹°·Ð, À§ÀÇ ¿¹Á¦¿¡¼­´Â Class c = Class.forName(¡°java.util.Vector¡±)¸¦ ÀÌ¿ëÇÏ¿© ClassŬ·¡½º¸¦ ¸¸µé¾úÁö¸¸ ¾îµò°¡¿¡¼­ ¾òÀº c ¶ó°í »ý°¢ÇϽñ⠹ٶø´Ï´Ù. ClassÇü °´Ã¼c¸¦ ÀÌ¿ëÇÏ¿© °´Ã¼ÀÇ ¸Þ¸ð¸®¸¦ »ý¼ºÇÏ´Â ºÎºÐÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n         object = c.newInstance();

 

ClassŬ·¡½ºÀÇ ¸â¹ö¸Þ¼­µåÀÎ newInstance()¸Þ¼­µå´Â °´Ã¼¸¦ »ý¼ºÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇØ ÁÝ´Ï´Ù. ÇÏÁö¸¸ newInstance¸Þ¼­µå´Â ObjectÇüÀ» ¸®ÅÏÇϱ⠶§¹®¿¡ ±× ÇüÀ» ¾Ë ¼ö ¾ø½À´Ï´Ù. Vector°´Ã¼°¡ ½ÇÁ¦·Î »ý¼ºµÇ¾ú´ÂÁö¸¦ È®ÀÎÇϱâ À§Çؼ­ instanceofŰ¿öµå¸¦ ÀÌ¿ëÇÏ¿© È®ÀÎ ÀýÂ÷¸¦ °ÅÄ¡°í ÀÖ½À´Ï´Ù.

 

n        if(c instanceof Vector)

 

½ÇÁ¦ »ý¼ºµÇ¾ú´Ù¸é ¡°VectorÇüÀÌ ¸Â½À´Ï´Ù¡±¶ó´Â ±¸¹®ÀÌ Ãâ·ÂµÉ °ÍÀÔ´Ï´Ù. ¾ÆÁÖ °£´ÜÇÏÁö¸¸ ¸¹Àº Àǹ̸¦ ´øÁ®ÁÖ´Â ¿¹Á¦ÀÔ´Ï´Ù. ClassŬ·¡½º¸¸ ÀÖ´Ù¸é °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌÁÒ. À̰ÍÀº ½ÇÁ¦ °¡»ó¸Ó½Å¿¡¼­ ÀÌ·ç¾îÁö´Â ÀÛ¾÷À» ÇÁ·Î±×·¥¼Ò½º·Î º¸¿©ÁÖ´Â ÁÁÀº ¿¹¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ
ÀúÀÚ:ÃÖ¿µ°ü