`public class ClassUtil {
//获取类的方法、返回值和参数
public void ClassPrintMethodMessage(Object obj){
//获取类类型
Class cls = obj.getClass();
System.out.println("类名:"+cls.getName());
//获取类类型下面所有的方法,包含父类继承过来的方法(只包括public)
Method[] methods = cls.getMethods();
//获取类类型下面所有的方法,只包含自己内部的方法(包含私有)
Method[] decMethods = cls.getDeclaredMethods();
//循环类类型的所有方法
for(int i = 0;i<methods.length;i++){
//获取方法的返回值
Class returnType = methods[i].getReturnType();
System.out.print(returnType.getName()+" ");
//方法名称
System.out.print(methods[i].getName()+" (");
//获取返回值参数
Class[] chars = methods[i].getParameterTypes();
for(Class c:chars){
System.out.print(c.getName()+",");
}
System.out.println(")");
}
ClassPrintFieldMessage(obj);
}
//获取类的成员变量
public void ClassPrintFieldMessage(Object obj){
Class cls = obj.getClass();
//获取类的成员变量,包含继承的父类成员变量
// Field[] fie = cls.getFields();
//获取类的成员变量,不包含继承的父类成员变量
Field[] dlFie = cls.getDeclaredFields();
for (Field f:dlFie) {
//成员变量类型
String type = f.getType().getName();
//成员变量名称
String name = f.getName();
System.out.println(type+" "+name);
}
}
//获取类的构造函数
public void ClassPrintConMessage(Object obj){
//获取类类型
Class cls = obj.getClass();
/*
获取构造函数
getConstructors 获取所有构造函数
getDeclaredConstructors 获取所有私有构造函数(构造函数必须为私有)
*/
// Constructor[] con = cls.getConstructors();
Constructor[] con = cls.getDeclaredConstructors();
for (Constructor c:con) {
System.out.print(c.getName()+"(");
Class[] cl = c.getParameterTypes();
for (Class clss:cl) {
System.out.print(clss.getName()+",");
}
System.out.println(")");
}
}`