Java获取成员变量构造函数信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq78442761/article/details/88047398

目录

 

理论

实例


理论

成员变量也是对象!

java.lang.reflect.Field类封装了关于成员变量的操作;

getFields()方法获取的是所有public的成员变量的信息;

getDeclaredFields获取的是该类自己声明的成员的信息。

成员变量也是类!

java.lang.reflect.Field类封装了关于成员变量的操作;

getFields()方法获取的是所有的public的成员变量的信息;

getDeclaredFields获取的是该类自己声明的成员变量的信息

注意:在任意情况下想获得一个类的信息,首先要得到这个类的类类型,得到了类的类类型,就可以很轻松的获得类信息

实例

程序结构如下:

源码如下:

ClassUtil.java

package my;

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

public class ClassUtil {
	
	public static void printConMessage(Object obj) {
		
		Class c = obj.getClass();
		Constructor[] cs = c.getDeclaredConstructors();
		for(Constructor constructor : cs) {
			
			System.out.print(constructor.getName() + "(");
			//获取构造函数参数列表
			Class[] paramTypes = constructor.getParameterTypes();
			for(Class class1 : paramTypes) {
				
				System.out.print(class1.getName() + ",");
			}
			System.out.println(")");
		}
		
	}

	public static void printMemberMessage(Object obj) {
		
		Class c = obj.getClass();
		Field[] fs = c.getDeclaredFields();
		for(Field field : fs) {
			
			//得到成员变量的类型的类型
			Class fieldType = field.getType();
			String typeName = fieldType.getName();
			
			//得到成员变量的名称
			String fieldName = field.getName();
			System.out.println(typeName + "\t" + fieldName);
			
		}
	}
}

Test.java

package my;

public class Test {

	public static void main(String[] args) {
		
		//ClassUtil.printMemberMessage("Hello");
		ClassUtil.printConMessage("Hello");
	}
}

printConMessage运行截图如下:

printMemberMessage运行截图如下:

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/88047398
今日推荐