[javaSE] 反射-获取类的成员属性和构造方法

前端之家收集整理的这篇文章主要介绍了[javaSE] 反射-获取类的成员属性和构造方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

成员属性和构造方法皆为对象,通过Class对象的方法可以得到

package com.tsh.reflect;

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

public class ReflectDemo {
    static void main(String[] args) {
        printClassFields(new Integer(1));
        printClassConstructs(new String("ss"));
    }
    /**
     * 打印类的成员属性信息
     * @param obj
     */
     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);
        }
    }
    
     * 打印类的构造方法
     *  printClassConstructs(Object obj){
        Class c=c.getName());
        System.out.println("类的构造方法:");
        Constructor[] constructors=c.getDeclaredConstructors();
        (Constructor constructor : constructors){
            Class[] paClass=constructor.getParameterTypes();
            String name=constructor.getName();
            int i=0;
            String params=new String();
            (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
 MAX_VALUE
Class TYPE
char[] digits
[] DigitTens
[] DigitOnes
[] sizeTable
 value
 SIZE
long serialVersionUID
boolean $assertionsDisabled


类的名称:java.lang.String
类的构造方法:
java.lang.String(byte[]}
java.lang.String(byte[],int,1)">}
java.lang.String([],Charset}
java.lang.String(,1)">char[],1)">}
java.lang.String(StringBuilder}
java.lang.String(StringBuffer}
java.lang.String(int[],1)">[]}
java.lang.String(String}
java.lang.String(}
java.lang.String(int}

 

猜你在找的Java SE相关文章