Java--Reflect(反射)专题4——获取成员变量以及构造函数信息
来源:互联网 发布:华为网络 编辑:程序博客网 时间:2024/05/17 23:54
转载请注明:http://blog.csdn.net/uniquewonderq
首先写一个获取成员变量的静态方法:
成员变量也是对象,
是java.lang.reflect.Field类的对象
Field类封装了关于成员变量的操作
getFields()获取的是所有的public的成员变量的信息
getDeclaredFields()获取的是该类自己声明的成员变量的信息,可能是私有的也可能是共有的
public static void printFieldMessage(Object obj){ Class c=obj.getClass();//传递的是哪个子类的对象,c就是该子类的类类型 /* 成员变量也是对象, 是java.lang.reflect.Field类的对象 Field类封装了关于成员变量的操作 getFields()获取的是所有的public的成员变量的信息 getDeclaredFields()获取的是该类自己声明的成员变量的信息,可能是私有的也可能是共有的 */ Field[] fs; //fs=c.getFields(); fs=c.getDeclaredFields(); for(Field field:fs){ //获取成员变量类型的类类型,也就是说,如果得到的是int类型的成员变量,那么返回int.class Class fieldType =field.getType(); String typeName=fieldType.getName();//得到成员变量类型 //得到成员变量的名字 String fieldName=field.getName(); System.out.println("成员变量类型:"+typeName+" 成员变量名为:"+fieldName); } }
测试代码:
public static void main(String[] args) { String s="hello"; Integer integer=8; //printClassMethodMessage(s);//获得方法信息 printFieldMessage(integer);//获得成员变量信息 // printConMessage(integer); }
测试结果:
run:
成员变量类型:int 成员变量名为:MIN_VALUE
成员变量类型:int 成员变量名为:MAX_VALUE
成员变量类型:java.lang.Class 成员变量名为:TYPE
成员变量类型:[C 成员变量名为:digits
成员变量类型:[C 成员变量名为:DigitTens
成员变量类型:[C 成员变量名为:DigitOnes
成员变量类型:[I 成员变量名为:sizeTable
成员变量类型:int 成员变量名为:value
成员变量类型:int 成员变量名为:SIZE
成员变量类型:int 成员变量名为:BYTES
成员变量类型:long 成员变量名为:serialVersionUID
然后在写一个获取对象的构造方法的函数:
构造函数也是对象,
是java.lang.reflect.Constructor封装了构造函数的信息
public static void printConMessage(Object obj){ //要想获取类的信息,首先获得它的类类型 Class c=obj.getClass(); /* 构造函数也是对象, 是java.lang.reflect.Constructor封装了构造函数的信息 */ Constructor [] cs; //cs=c.getConstructors();//获得所有的共有的方法 cs=c.getDeclaredConstructors();//获取所有的构造方法 for(Constructor constructor:cs){ System.out.print("构造方法 "+constructor.getName()+"("); //下面获取构造函数的参数列表, //得到的是参数列表的类类型 Class[] paramTypes=constructor.getParameterTypes(); for(Class c1:paramTypes){ System.out.print(c1.getName()+","); } System.out.print(")"); System.out.println(); }测试代码:
public static void main(String[] args) { String s="hello"; //Integer integer=8; //printClassMethodMessage(s);//获得方法信息 //printFieldMessage(integer);//获得成员变量信息 printConMessage(s); }
测试结果: 即string类的所有构造方法
构造方法 java.lang.String([B,int,int,)
构造方法 java.lang.String([B,java.nio.charset.Charset,)
构造方法 java.lang.String([B,java.lang.String,)
构造方法 java.lang.String([B,int,int,java.nio.charset.Charset,)
构造方法 java.lang.String([B,int,int,java.lang.String,)
构造方法 java.lang.String([C,boolean,)
构造方法 java.lang.String(java.lang.StringBuilder,)
构造方法 java.lang.String(java.lang.StringBuffer,)
构造方法 java.lang.String([B,)
构造方法 java.lang.String([I,int,int,)
构造方法 java.lang.String()
构造方法 java.lang.String([C,)
构造方法 java.lang.String(java.lang.String,)
构造方法 java.lang.String([C,int,int,)
构造方法 java.lang.String([B,int,)
构造方法 java.lang.String([B,int,int,int,)
- Java--Reflect(反射)专题4——获取成员变量以及构造函数信息
- Java学习提要——"反射"获取方法信息(成员函数、成员变量 、构造函数)
- 22、Java入门—反射之获取获取成员变量和构造函数的信息
- JAVA反射获取成员变量构造函数信息
- Java--Reflect(反射)专题3——获取类的方法的所有信息
- 【慕课网笔记】Java 反射机制 4 获取成员变量构造函数信息
- Java反射(四)----- 获取成员变量和构造函数信息
- java反射学习笔记(3)---使用Class来获取方法、成员变量、构造函数信息
- 4-1 Java获取成员变量与构造函数信息
- Java反射机制:获取成员变量和构造函数的信息
- java反射,获取类的方法,成员变量,构造函数信息
- java反射:获取类的成员变量和构造函数
- 黑马程序员——【Java反射学习】方法的反射/成员变量的反射/构造函数的反射
- java反射2-获取构造方法、成员变量、成员方法
- Java 获取成员变量&构造函数
- 通过反射获取类对象的成员函数、成员变量(只获取成员函数)、构造函数
- Java反射---Class对象,获得类的方法、成员变量和构造函数信息
- Java反射打印类的信息,包括类的成员函数、成员变量(只获取成员函数)
- Java "object reference" demo
- leetCode(19):Count Complete Tree Nodes
- WCF医院管理系统技术解析(十二)化验登记
- POJ 1477 && HDU 1326 Box of Bricks(水~)
- Afaria 7 SP5中的SSP URL
- Java--Reflect(反射)专题4——获取成员变量以及构造函数信息
- Extract ISBN From PDF and EPUB and Query Matadata From ISBN Database
- c#中用DirectShow实现媒体播放器的核心(1) DirectShow简介
- Arrays数组。。
- 从Quagga到DCE的处理流程
- DB2 存储过程 - 利用 dbms_output.put_line 输出至屏幕
- 轻量级持久存储系统--MemcacheDB
- 编程之美 3.3计算字符串的相似度
- leetCode(20):Balanced binary tree