反射机制----Method,Field,Constructor
生活随笔
收集整理的這篇文章主要介紹了
反射机制----Method,Field,Constructor
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
public?class?ClassUtil?{/**?打印類的信息,包括類的成員函數,成員變量*/public?static?void?printClassMessage(Object?obj){//要獲取類的信息???首先要獲取類的類類型Class?c?=?obj.getClass();//傳遞的是哪個子類的對象?c就是該子類的類類型//獲取類的名稱System.out.println("類的名稱是:"+c.getName());/**?Method類,方法對象*?一個成員方法就是一個Method對象*?getMethods()方法獲取的是所有的public的函數,包括父類繼承而來的*?getDeclaredMethods()獲取的是所有該類自己聲明的方法,不問訪問權限*/Method[]?ms?=?c.getMethods();//c.getDeclaredMethods()for(int?i=0;i?<?ms.length;i++){//得到方法的返回值類型的類類型Class?returnType?=?ms[i].getReturnType();System.out.print(returnType.getName()?+?"?");//得到方法的名稱System.out.print(ms[i].getName()?+?"(");//獲取參數類型---->得到的是參數列表的類型的類類型Class[]?paramType?=?ms[i].getParameterTypes();for?(Class?class1?:?paramType)?{System.out.print(class1.getName()?+?",");}System.out.println(")");}}} public?class?ClassDemo3?{public?static?void?main(String[]?args)?{String?s?=?"hello";ClassUtil.printClassMessage(s);}}這段代碼將會輸出對應的類的方法信息.
下面這段代碼表示類的相關屬性:
public?static?void?printFieldMessage(Object?obj)?{Class?c?=?obj.getClass();/**?成員變量也是對象*?java.lang.reflect.Field*?Field類封裝了關于成員變量的操作*?getFields()方法獲取的是所有的public的成員變量的信息*?getDeclaredFields獲取的是該類自己聲明的成員變量的信息*/Field[]?fs?=?c.getDeclaredFields();for(Field?field:fs){//得到成員變量的類型的類類型Class?fieldType?=?field.getType();String?typeName?=?fieldType.getName();//得到成員變量的名稱String?fieldName?=?field.getName();System.out.println(typeName?+?"?"+?fieldName);}}下面這段代碼表示類的構造函數:
/**?打印對象的構造函數的信息*/public?static?void?printConMessage(Object?obj){Class?c?=?obj.getClass();/**?構造函數也是對象*?java.lang.Constructor中封裝了構造函數的信息*?getConstructors獲取所有的public的構造函數*?getDeclaredConstructors得到所有的構造函數*///Constructor[]?cs?=??c.getConstructors();Constructor[]?cs?=?c.getDeclaredConstructors();for(Constructor?constructor?:?cs){System.out.print(constructor.getName()?+?"(");//獲取構造函數的參數列表---->得到的是參數列表的類類型Class[]?paramType?=?constructor.getParameterTypes();for(Class?c1:paramType){System.out.print(c1.getName()+",");}System.out.println(")");}} 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的反射机制----Method,Field,Constructor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二十五、长短时记忆神经网络
- 下一篇: 方法的反射