[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} ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |