加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2021-05-21 06:45:22 所属栏目:大数据 来源: https://www.jb51.cc
导读:成员属性和构造方法皆为对象,通过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 ))

成员属性和构造方法皆为对象,通过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}

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读