<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) 賦值給這兩個屬性。不知道看懂沒?求樓主大嬸給我解答一下,小弟菜鳥。多謝!  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 久久不见久久见免费视频7| 四虎成人精品在永久免费| 亚洲久热无码av中文字幕| 亚洲精品成人久久久| 足恋玩丝袜脚视频免费网站| 亚洲av日韩综合一区二区三区 | 婷婷综合缴情亚洲狠狠尤物| 免费的全黄一级录像带| 亚洲精品伦理熟女国产一区二区| 亚洲中文久久精品无码| 成年男女男精品免费视频网站| 中文字幕视频免费在线观看| 亚洲AV无码一区二区三区在线| 国产黄色一级毛片亚洲黄片大全| 69式互添免费视频| 国产一级a毛一级a看免费视频| 亚洲xxxx视频| 亚洲国产成人精品不卡青青草原| 免费v片在线观看品善网| 久草视频在线免费| 国产一区二区三区免费观在线| 亚洲精品久久无码| 亚洲图片在线观看| 中文字幕亚洲不卡在线亚瑟| 四虎成人精品一区二区免费网站| 精品成人免费自拍视频| 免费无毒a网站在线观看| 亚洲综合伊人制服丝袜美腿| 久久香蕉国产线看观看亚洲片| 又黄又爽的视频免费看| 三年片在线观看免费观看高清电影| a级毛片毛片免费观看久潮喷 | 99久久综合精品免费| 亚洲精品黄色视频在线观看免费资源| 亚洲中文字幕无码爆乳app| 99久久亚洲精品无码毛片| 亚洲无人区一区二区三区| 免费国产成人高清视频网站| 性一交一乱一视频免费看| 青娱乐免费视频在线观看| 无码国产精品一区二区免费vr|