<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

    在類中尋找指定的方法,同時獲取該方法的參數列表,例外和返回值

    package com.abin.lee.reflect;

    import java.lang.reflect.Method;

    public class method1 {
     private int f1(Object p,int x) throws NullPointerException{
      if(p==null)
       throw new NullPointerException();
      return x;
     }
     public static void main(String[] args) {
      try {
       Class cls=Class.forName("com.abin.lee.reflect.method1");
       Method[] method=cls.getDeclaredMethods();
       for(int i=0;i<method.length;i++){
        Method m=method[i];
        System.out.println("name="+m.getName());
        System.out.println("decl class="+m.getDeclaringClass());
        Class pvec[]=m.getParameterTypes();
        for(int j=0;j<pvec.length;j++)
         System.out.println("param#"+j+" "+pvec[j]);
        Class evec[]=m.getExceptionTypes();
        for(int k=0;k<evec.length;k++)
         System.out.println("evec="+evec[k]);
        System.out.println("return type="+m.getReturnType());
       }
       
       
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
     

    }






    獲取類的構造函數信息,基本上與獲取方法的方式相同

    package com.abin.lee.reflect;

    import java.lang.reflect.Constructor;

    public class constructor1 {
     public constructor1(){}
     public constructor1(int i,double d){}
     public static void main(String[] args) {
      try {
       Class<?> con=constructor1.class;
       Constructor cs[]=con.getConstructors();
       for(int i=0;i<cs.length;i++){
        Constructor ct=cs[i];
        System.out.println("name="+ct.getName());
        System.out.println("decl class="+ct.getDeclaringClass());
        Class pvec[]=ct.getParameterTypes();
        for(int j=0;j<pvec.length;j++){
         System.out.println("param="+pvec[j]);
        }
        Class excp[]=ct.getExceptionTypes();
        for(int j=0;j<excp.length;j++){
         System.out.println("exception="+excp[j]);
        }
        
        
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    }







    獲取類中的各個數據成員對象,包括名稱。類型和訪問修飾符號:

    package com.abin.lee.reflect;

    import java.lang.reflect.Field;

    public class FieldTest {
     private double d;
     public static final int i=37;
     String s="testing";
     public static void main(String[] args) {
      Class<?> cls=FieldTest.class;
      Field field[]=cls.getDeclaredFields();
      for(int i=0;i<field.length;i++){
       Field fd=field[i];
       System.out.println("name="+fd.getName());
       System.out.println("class="+fd.getDeclaringClass());
       System.out.println("type="+fd.getType());
       int mod=fd.getModifiers();
       System.out.println("modifiers="+java.lang.reflect.Modifier.toString(mod));
       
      }
      
      
      
     }
    }


    posted on 2012-04-15 00:25 abin 閱讀(743) 評論(1)  編輯  收藏 所屬分類: Java反射機制

    Feedback

    # re: Java 反射機制(三)[未登錄] 2015-10-28 17:39 Tony
    給你一個類User ,里面有倆個私有屬性,name,int age,但是沒有set get方法, 反射生成對象,同時給兩個屬性值("abin",20) 賦值給這兩個屬性。不知道看懂沒?求樓主大嬸給我解答一下,小弟菜鳥。多謝!  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品美女自在线观看免费| 亚洲午夜无码久久久久小说| 日本免费福利视频| 三年片在线观看免费观看大全一| 四虎国产精品成人免费久久| 涩涩色中文综合亚洲| 亚洲精品自产拍在线观看动漫| 亚洲国产成人五月综合网 | 国产小视频在线免费| 91精品免费久久久久久久久| 嫩草在线视频www免费观看| free哆拍拍免费永久视频 | 日本高清免费中文字幕不卡| 99热在线免费播放| 人人揉揉香蕉大免费不卡| 久久久久久av无码免费看大片| 美女视频黄频a免费观看| 亚洲一线产品二线产品| 亚洲一区免费在线观看| 亚洲国产精品久久人人爱| 亚洲影院在线观看| 无码专区—VA亚洲V天堂| 九月丁香婷婷亚洲综合色| 国产成人精品久久亚洲| 亚洲日本中文字幕天堂网| 亚洲国产精品尤物yw在线| 四虎精品亚洲一区二区三区| 亚洲综合小说另类图片动图 | 黄页网站免费观看| 免费能直接在线观看黄的视频 | 亚洲日本乱码在线观看| 免费精品国产自产拍在| 青青青免费国产在线视频小草| 最新黄色免费网站| 114一级毛片免费| 成全视频在线观看免费高清动漫视频下载| 国产免费不卡v片在线观看| 国色精品卡一卡2卡3卡4卡免费| 色播精品免费小视频| 欧美日韩国产免费一区二区三区| 日韩毛片免费无码无毒视频观看|