ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© Ŭ·¡½ºÀÇ Á¤º¸¸¦ ºÐ¼®ÇØ ³¾ ¼ö ÀÖ´Â °£´ÜÇÑ ¿¹¸¦ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ÃßÃâµÈ Á¤º¸´Â ´ëºÎºÐ java.lang.reflectÆÐŰÁö ³»¿¡ Á¸ÀçÇϴ Ŭ·¡½ºµéÀÌ´Ï ÀÌÁ¡¿¡ À¯³äÇØ¼ Çѹø °üÂûÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
ShowClassInfoŬ·¡½º(ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© Ŭ·¡½º¿¡ ´ëÇÑ Á¤º¸ ÃßÃâ) |
import java.lang.reflect.*; import java.util.Vector; public class AnalysisClassInfo { public int temp =1000; public void printShow(){ } public static void main(String [] args) { try{ Class c = Class.forName("AnalysisClassInfo"); System.out.println("====Superclass ¾ò¾î³»±â===="); Class cla = c.getSuperclass();System.out.println(cla.toString()); System.out.println("==Constructor [] ¾ò¾î³»±â=="); Constructor [] ctor = c.getConstructors(); for(int i=0;i<ctor.length;i++) System.out.println(ctor[i].toString()); System.out.println("====Method [] ¾ò¾î³»±â===="); Method [] m = c.getMethods(); for(int i=0;i<m.length;i++) System.out.println(m[i].toString()); System.out.println("====Field [] ¾ò¾î³»±â===="); Field [] f = c.getFields(); for(int i=0;i<m.length;i++) System.out.println(f[i].toString()); }catch(Exception e){} } } |
C:\JavaExample\11>javac AnalysisClassInfo.java C:\JavaExample\11>java AnalysisClassInfo ====Superclass ¾ò¾î³»±â==== class java.lang.Object ==Constructor [] ¾ò¾î³»±â== public AnalysisClassInfo() ====Method [] ¾ò¾î³»±â==== public static void AnalysisClassInfo.main(java.lang.String[]) public native int java.lang.Object.hashCode() public final void java.lang.Object.wait() throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public final native java.lang.Class java.lang.Object.getClass() public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() public void AnalysisClassInfo.printShow() ====Method [] ¾ò¾î³»±â==== public int AnalysisClassInfo.temp public final native java.lang.Class java.lang.Object.getClass() public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() public void AnalysisClassInfo.printShow() ====Field [] ¾ò¾î³»±â==== public int AnalysisClassInfo.temp |
Á¦ÀÏ ¸ÕÀú ÇÊ¿äÇÑ ClassŬ·¡½º¸¦ ¸ÕÀú ·ÎµùÇϰí ÀÖ½À´Ï´Ù. ÇöÀç´Â AnalysisClassInfoÀÇ ClassŬ·¡½º¸¦ ¾ò°í ÀÖ½À´Ï´Ù.
n Class c = Class.forName("AnalysisClassInfo");
±×¸®°í, AnalysisClassInfoÀÇ ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© Á¤º¸¸¦ ÃßÃâÇϰí ÀÖ´Â ºÎºÐÀº ´ÙÀ½°ú °°½À´Ï´Ù.
n Class cla = c.getSuperclass();
n Constructor [] ctor = c.getConstructors();
n Method [] m = c.getMethods();
n Field [] f = c.getFields();
Superclass, »ý¼ºÀÚ, ¸Þ¼µå, ÇÊµå µî ¿©·¯ °¡Áö Á¤º¸¸¦ ÃßÃâÇØ¼ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù. ÀÌ Á¤º¸µéÀº ¸ðµÎ ¹è¿ÀÇ ÇüÅ·ΠµÇ¾î Àֱ⠶§¹®¿¡ Á¤º¸¸¦ Ãâ·ÂÇÏ´Â ºÎºÐÀº µ¿ÀÏÇÕ´Ï´Ù. Çϳª¸¸ ºÐ¼®ÇØ º¸ÁÒ.
n Method [] m = c.getMethods();
n for(int i=0;i<m.length;i++)
n System.out.println(m[i].toString());
Method ¹è¿ °´Ã¼ mÀÇ ±æÀÌ´Â m.lengthÀ̸ç, ±× ±æÀÌ ¸¸Å loopó¸®ÇÏ¿© Á¤º¸¸¦ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù. ´Ù¸¥ °Íµéµµ ¹è¿ÀÇ ÇüÅ·ΠµÇ¾î Àֱ⠶§¹®¿¡ ÀÌ¿Í °°Àº ¹æ¹ýÀ¸·Î ÇØ°á ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ ¹æ¹ýÀ̿ܿ¡µµ, ClassŬ·¡½º¿¡¼ Ŭ·¡½ºÀÇ Á¤º¸¸¦ ºÐ¼®ÇÏ´Â ¸Þ¼µå´Â ¾ÆÁÖ ´Ù¾çÇÕ´Ï´Ù. °ÅÀÇ ÇÊ¿äÇÑ ¿ä¼ÒµéÀº ´Ù ÀÖ´Ù°í º¸¸é ÆíÇϰÚÁÒ. ±×·±µ¥, Á¤º¸¸¦ ¾ò¾î³Â´Ù¸é ¾î¶»°Ô »ç¿ëÀ» ÇØ º¸¾Æ¾ß°ÚÁÒ. ClassŬ·¡½º¸¦ ÀÌ¿ëÇÏ¿© Ŭ·¡½ºÀÇ Á¤º¸¸¦ ºÐ¼®Çß´Ù¸é ¹º°¡ ÇØ¾ß ÇÏÁö ¾Ê°Ú½À´Ï±î? Áö±Ý±îÁö´Â Á¤º¸¸¸À» ÃßÃâÇßÀ» »Ó ¾Æ¹«°Íµµ ÇÏÁö ¾Ê¾Ò½À´Ï´Ù. ´ÙÀ½À¸·Î ClassÁ¤º¸¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ ÀúÀÚ:ÃÖ¿µ°ü |