ÀÚ! ÀÌÁ¦ ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¼µå¸¦ È£ÃâÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¸Å°³º¯¼ö¸¦ ¸ÂÃß¾îÁÖ´Â °ÍÀº ¾à°£ ±î´Ù·Ó½À´Ï´Ù. ÇöÀç È£ÃâÇÏ·Á´Â ¸Þ¼µå´Â StringŬ·¡½ºÀÇ substring¸Þ¼µåÀÔ´Ï´Ù. ƯÁ¤ ¹®ÀÚ¿¿¡¼ ÀϺκÐÀ» ÃßÃâÇÏ´Â ¸Þ¼µåÁÒ.
n String s = new String(¡°Hello World¡±);
n String r = s.substring(6,11)
n °á°ú: World
ÀÌ¿Í °°Àº ±¸¹®À» Class·Î ±¸ÇöÇÑ ¿¹Á¦¸¦ Çѹø »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
MethodInvok.java(¸Å°³º¯¼ö ÀÖ´Â ¸Þ¼µå È£ÃâÇϱâ) |
import java.awt.*; import java.lang.reflect.*; public class MethodInvoke{ public static void main(String[] arg) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { Class c = String.class; Class[] parameterTypes = new Class[] {int.class, int.class}; Method m = c.getMethod("substring", parameterTypes); Object[] arguments = new Object[] {new Integer(6),new Integer(11)}; String s = "Hello World"; Object result = m.invoke(s, arguments); System.out.println(result.toString()); } } |
C:\JavaExample\11>javac MethodInvoke.java C:\JavaExample\11>java MethodInvoke World |
ÀÏ´Ü Class c¿¡¼ È£ÃâÇϰíÀÚ ÇÏ´Â Method¸¦ ¾ò¾î³»¾î¾ß ÇÕ´Ï´Ù. ¾î¶°ÇÑ ¸Þ¼µå¸¦ È£ÃâÇÒ ÁöºÎÅÍ Ã£´Â´Ù°í »ý°¢ÇÏ½Ã¸é ÆíÇÏ°Ô ÀÌÇØÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
n Class[] parameterTypes = new Class[] {int.class, int.class};
n Method m = c.getMethod("substring", parameterTypes);
ÀÌ ¶§ ¸Þ¼µåÀÇ À̸§°ú È£ÃâÇÏ·Á´Â ¸Þ¼µåÀÇ ¸Å°³º¯¼ö Á¤µµ´Â ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¹°·Ð, ¹Ì¼¼ÇÏ°Ô µ¿ÀûÀ¸·Î ã¾Æ ³¾ ¼öµµ ÀÖÁö¸¸, ÀÚ½ÅÀÌ È£ÃâÇÒ ¸Å°³º¯¼ö¿Í ¸Þ¼µåÀÇ À̸§Á¤µµ´Â ¾Æ´Â °ÍÀ» ±âº»À¸·Î ÇÕ´Ï´Ù.
±×¸®°í, ÀÌ Method mÀ» ÀÌ¿ëÇØ¼ ¸Þ¼µå¸¦ È£ÃâÇÕ´Ï´Ù. °´Ã¼ sÀÇ ¸Þ¼µå¸¦ ¸®Ç÷º¼ÇÀ» ÀÌ¿ëÇØ¼ È£ÃâÇÏ´Â °ÍÀÔ´Ï´Ù. ¹°·Ð À̶§µµ ÀûÀýÇÑ ¸Å°³º¯¼ö¸¦ Object¹è¿ÀÇ ÇüÅ·Π³Ö¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. À̰Ϳ¡ °ü·ÃµÈ ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
n Object[] arguments = new Object[] {new Integer(6),new Integer(11)};
n String s = "Hello World";
n Object result = m.invoke(s, arguments);à s.substring(6,11)
¸Å°³º¯¼ö´Â Object¹è¿ÀÇ ÇüÅ·Π6°ú 11À» ÁغñÇßÀ¸¸ç ±×¸®°í s¶ó´Â °´Ã¼ ³»¿¡ Á¸ÀçÇÏ´Â ¸Þ¼µå¸¦ Method mÀ» ÅëÇØ¼ È£ÃâÇϰí ÀÖ½À´Ï´Ù. °á°ú·Î ³ª¿Â Object result´Â ºÐ¸í ¡°Hello World¡±¹®ÀÚÀÇ 6¹øÂ°(0ºÎÅÍ ½ÃÀÛ)ºÎÅÍ 11¹øÂ° ³»¿¡ Á¸ÀçÇÏ´Â ¹®ÀÚ¿ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×·±µ¥ ÀÌ·± Àǹ®À» °¡Áú ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×³É s.substringÀ» »ç¿ëÇÏÁö ¿Ö ±»ÀÌ º¹ÀâÇÏ°Ô Çϴ°¡? ¸¸¾à, sÀÇ ÇüÀ» ¸ð¸¥´Ù°í »ý°¢ÇØ º¸½Ê½Ã¿À. ±×·¸´Ù¸é À§ÀÇ ¿¹Á¦´Â È¿·ÂÀ» ¹ß»ýÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ´ÙÀ½À¸·Î ¸Å°³º¯¼ö ¾ø´Â ¸Þ¼µå¸¦ È£ÃâÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ ÀúÀÚ:ÃÖ¿µ°ü |