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

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

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

    隨筆-124  評(píng)論-49  文章-56  trackbacks-0

    java.lang.Class
    在類(lèi)加載時(shí),java虛擬機(jī)會(huì)自動(dòng)創(chuàng)建相應(yīng)的class對(duì)象
    1.獲取class對(duì)象
    Class c=Class.froName("c");
    2.解析屬性信息
    Field[] fs=c.getDeclaredFields();
    for(Field f:fs){
       System.out.println("屬性:"+f.toString());
       System.out.println("數(shù)據(jù)類(lèi)型:"+f.getType());
       System.out.println("屬性名:"+f.getName());
       int mod=f.getModifeers();
       System.out.println("屬性修飾符:"+Modifier.toString(mod));
    }
    3.解析方法信息
    Method[] ms=c.getDeclaredMethods();
    for(Method m:ms){
       System.out.println("方法:"+m.toString());
       System.out.println("方法名:"+m.getName());
       int mod=f.getModifeers();
       System.out.println("方法修飾符:"+Modifier.toString(mod));
       Class pts[] = m.getParameterTypes();//得到參數(shù)列表
       m.getReturnType();//得到返回值類(lèi)型
    }
    4.解析構(gòu)造方法
    Constructor[]  cs=c.getDeclaredConstructors();
    for(Constructor con:cs){
       System.out.println("構(gòu)造方法:"+con.toString());
       System.out.println("方法名:"+con.getName());
       System.out.println("方法修飾符:"+Modifier.toString(mod));
       Class pts[] = m.getParameterTypes();//得到參數(shù)列表
       m.getReturnType();//得到返回值類(lèi)型
    }
    5.解析當(dāng)前類(lèi)類(lèi)型的父類(lèi)
    Class superClass=c.getSuperclass();
    6.解析當(dāng)前類(lèi)實(shí)現(xiàn)的接口
    Class[] interfaces=c.getInterfaces();
    for(Class cl:interfaces){
       System.out.println(cl.toString());
    }
    7.解析當(dāng)前包
    Package p=c.getPackage();
    ---------------------------------------------------------------

    1.直接操作對(duì)象屬性
    User u=new User();
    Class c=u.getClass();//同Class.forName("p2.User");
    Field f=c.getField(fieldName);
    Object fv=f.get(u);//得到對(duì)象u實(shí)例對(duì)應(yīng)f屬性的值
    f.set(u,value);設(shè)置u對(duì)象f屬性的值為value
    2.調(diào)用對(duì)象成員方法
    Class[] argTypes={String.class,int.class};
    //上行等同Class[] argTypes=new Class[]{String.class,int.class};
    Object[] args=new Object[]{"王五",99};

    Class c-u.getClass();
    Method m=c.getMethod(methodName,argTypes);
    Object result=m.invoke(u,args);
    System.out.println(result);
    3.調(diào)用類(lèi)成員方法
    Class c=Class.forName("className");
    Method m=c.getMethod(methodName,argTypes);
    Object result=m.invoke(null,args);//沒(méi)有對(duì)象,所以指定為null
    ---------------------------------------------------------------
    獲取class對(duì)象
    *針對(duì)引用數(shù)據(jù)類(lèi)型
    1.調(diào)用靜態(tài)方法Class.forName()
    Class.forName("p1.User");
    2.調(diào)用Object類(lèi)中定義的getClass()方法
    User u=new User();
    Class c=u.getClass();
    3.使用.class表達(dá)式
    Class c1=String.class;
    Class c2=p1.User.class;
    *針對(duì)基本數(shù)據(jù)類(lèi)型及void
    1.使用.class表達(dá)式
    Class c1=int.class;
    Class c2=double.class;
    Class c3=void.class;
    2.調(diào)用相應(yīng)封裝類(lèi)的.Type屬性
    Class c1=Integer.TYPE;
    Class c2=Double.TYPE;
    Class c3=Void.TYPE;
    ----------------------------------------------
    java.lang.reflect.Field
    1.獲取Field對(duì)類(lèi)(Class類(lèi)提供)
    public Field[] getDeclaredFields()//當(dāng)前類(lèi)的所有屬性,不包括父類(lèi)
    public Field getDeclaredField(String name)//當(dāng)前類(lèi)指定屬性,不包括父類(lèi)
    public Field[] getFields()//當(dāng)前類(lèi)所有public的屬性,包括父類(lèi)
    public Field getField(String name)//當(dāng)前類(lèi)指定的public屬性,包括父類(lèi)
    2.Field類(lèi)主要成員方法
    public Object get(Object obj)
    pbulic void set(Object obj,Object value)
    public xxx getXxx(Object obj)
    public void setXxx(Object obj,xxx x)//xxx為基本數(shù)據(jù)類(lèi)型
    public String getName()
    public int getModifiers()//當(dāng)前屬性的修飾符
    public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
    返回當(dāng)前屬性前面的注釋
    public String toString()
    public boolean equals(Object obj)
    ------------------------------------------------------------------------
    java.lang.reflect.Method
    1.獲取Method對(duì)類(lèi)(Class類(lèi)提供)
    public Method[] getDeclaredMethods()//當(dāng)前類(lèi)的所有方法,不包括父類(lèi)
    public Method getDeclaredMethod(String name,Class<?> parameterTypes)//當(dāng)前類(lèi)指定方法,不包括父類(lèi)
    public Method[] getMethods()//當(dāng)前類(lèi)所有public的方法,包括父類(lèi)
    public Method getMethod(String name)//當(dāng)前類(lèi)指定的public方法,包括父類(lèi)
    2.Method類(lèi)主要成員方法
    public Object invoke(Object obj,Object args)****
    public String getName()
    public Class<?>[] getParameterTypes()
    public int getModifiers()//當(dāng)前屬性的修飾符
    public Class<?> getReturnType()
    public Class<?>[] getExceptionTypes()
    public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
    返回當(dāng)前屬性前面的注釋
    public String toString()
    public boolean equals(Object obj)
    -----------------------------------------------------------
    java.lang.reflect.Modifier
    1.獲取Modifier對(duì)象
    public int getModifieers()
    2.Modifier類(lèi)方法
    public static boolean isPublic(int mod)
    public static boolean isPrivate(int mod)

    --------------------------------------------------------------
    java.lang.reflect.Constructor
    public T newInstance(Object initargs)

    Class c=Class.forName("p1.Person");
    Class[] argTypes={String.class,int.class};//參數(shù)列表
    Constructor cons=c.getConstructor(argTypes);
    Object obj=cons.newInstance("中國(guó)",5000);

    調(diào)用無(wú)參構(gòu)造方法
    cons=c.getconstructor();
    obj=constructor.newInstance();
    obj=c.newInstance();
    ----------------------------------------------------------------
    java.lang.reflect.Array

    class類(lèi)方法
    public Class<?> getComponentType()//返回?cái)?shù)組對(duì)象的數(shù)據(jù)類(lèi)型

    posted on 2009-11-29 21:24 junly 閱讀(196) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java
    主站蜘蛛池模板: 亚洲av色影在线| 成人免费无码H在线观看不卡| 人人狠狠综合久久亚洲88| 午夜影视在线免费观看| 亚洲免费网站在线观看| 国产真人无码作爱免费视频| 亚洲AV无码一区二区三区性色 | 亚洲人成影院77777| 国产亚洲色婷婷久久99精品| 亚洲av无码国产精品色在线看不卡| 无码免费午夜福利片在线| 精品国产免费人成电影在线观看| 国产免费一区二区三区不卡 | 亚洲精品一级无码鲁丝片| 在线看片人成视频免费无遮挡| 日本zzzzwww大片免费| 无码国产精品一区二区免费式芒果| 日本一区二区在线免费观看 | 亚洲精品高清在线| 一本色道久久88亚洲综合| 国产成人免费永久播放视频平台 | 亚洲综合色区中文字幕| 亚洲成A∨人片在线观看无码| 亚洲人成网址在线观看| 亚洲精品免费视频| 亚洲AV成人片色在线观看高潮| 国产亚洲AV无码AV男人的天堂| 久久久久亚洲?V成人无码| 亚洲人成无码网WWW| 亚洲AV无码一区二三区| 亚洲狠狠爱综合影院婷婷| 亚洲成A人片在线观看无码3D| 亚洲 自拍 另类小说综合图区| 免费a级毛片无码a∨性按摩| 国产一级做a爱免费视频| 免费观看亚洲人成网站| 婷婷亚洲天堂影院| 黑人大战亚洲人精品一区| 久久精品国产精品亚洲精品| 亚洲图片一区二区| 亚洲欧洲国产成人精品|