程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> [javaSE] 反射-獲取類的成員屬性和構造方法,javase成員

[javaSE] 反射-獲取類的成員屬性和構造方法,javase成員

編輯:JAVA綜合教程

[javaSE] 反射-獲取類的成員屬性和構造方法,javase成員


成員屬性和構造方法皆為對象,通過Class對象的方法可以得到

package com.tsh.reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

public class ReflectDemo {
    public static void main(String[] args) {
        printClassFields(new Integer(1));
        printClassConstructs(new String("ss"));
    }
    /**
     * 打印類的成員屬性信息
     * @param obj
     */
    public static void printClassFields(Object obj){
        Class c=obj.getClass();
        System.out.println("類的名稱:"+c.getName());
        System.out.println("類的成員屬性:");
        Field[] fields=c.getDeclaredFields();
        for(Field field:fields){
            Class fieldClass=field.getType();
            String fieldName=field.getName();
            String fieldType=fieldClass.getSimpleName();
            System.out.println(fieldType+" "+fieldName);
        }
    }
    /**
     * 打印類的構造方法
     * @param obj
     */
    public static void printClassConstructs(Object obj){
        Class c=obj.getClass();
        System.out.println("類的名稱:"+c.getName());
        System.out.println("類的構造方法:");
        Constructor[] constructors=c.getDeclaredConstructors();
        for(Constructor constructor : constructors){
            Class[] paClass=constructor.getParameterTypes();
            String name=constructor.getName();
            int i=0;
            String params=new String();
            for(Class param : paClass){
                if(i==0){
                    params+=param.getSimpleName();
                }else{
                    params+=","+param.getSimpleName();
                }
                i++;
            }
            System.out.println(name+"("+params+"}");
        }
    }
}

輸出結果:

類的名稱:java.lang.Integer
類的成員屬性:
int MIN_VALUE
int MAX_VALUE
Class TYPE
char[] digits
char[] DigitTens
char[] DigitOnes
int[] sizeTable
int value
int SIZE
long serialVersionUID
boolean $assertionsDisabled


類的名稱:java.lang.String
類的構造方法:
java.lang.String(byte[]}
java.lang.String(byte[],int,int}
java.lang.String(byte[],Charset}
java.lang.String(byte[],String}
java.lang.String(byte[],int,int,Charset}
java.lang.String(int,int,char[]}
java.lang.String(char[],boolean}
java.lang.String(StringBuilder}
java.lang.String(StringBuffer}
java.lang.String(int[],int,int}
java.lang.String(char[],int,int}
java.lang.String(char[]}
java.lang.String(String}
java.lang.String(}
java.lang.String(byte[],int,int,String}
java.lang.String(byte[],int}
java.lang.String(byte[],int,int,int}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved