[javaSE] 反射-获取类的成员属性和构造方法
2023-02-18 15:47:26 时间
成员属性和构造方法皆为对象,通过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}
相关文章
- 【Zabbix】Zabbix网络自动发现
- 【Zabbix】Zabbix微信告警配置演示
- 【Zabbix】Zabbix 分布式监控—创建Proxy主机
- 七日算法先导(一)—— 数组
- 判断畅销款的难点与突破口
- 【Zabbix】Zabbix基于SNMP监控配置
- 【Zabbix】Zabbix JMX 接口配置
- 七日算法先导(二)——双指针
- 七日算法先导(三)—— 冒泡排序,选择排序
- 七日算法先导(四)—— 快速排序,插入排序
- 七日算法先导(五)——归并排序,希尔排序
- 七日算法先导(六)——堆排序,桶排序
- 七日算法先导(七)——字符串
- 数据结构——栈
- 数据结构——队列
- 数据结构——树(树的基本概念)
- 数据结构——二叉树
- 产品分析利器:Excel Image函数
- SMTP协议详解
- 【KiCad镜像】下载与安装