package 测试;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class TestDemo {
public String toString(Object obj) {//重写toString()方法
Class clazz = obj.getClass();
StringBuilder sb = new StringBuilder();
Package pakName = clazz.getPackage();
sb.append("包名:"+pakName.getName()+"\t");
String className = clazz.getSimpleName();
sb.append("类名:"+className+"\n");
sb.append("公共构造方法:\n");
//获得所有代表构造方法的Constructor数组
Constructor[] cons = clazz.getDeclaredConstructors();
for(Constructor constructor : cons) {
String modifier = Modifier.toString(constructor.getModifiers());//获得修饰符(判断是共有,默认,还是私有)
if(modifier.contains("public")) {
sb.append(constructor.toGenericString()+"\n");
}
}
sb.append("公共域:\n");
//获得代表所有域的Field数组
Field[] fields = clazz.getDeclaredFields();
for(Field field : fields) {
String modifier = Modifier.toString(field.getModifiers());
if(modifier.contains("public")) {//查看修饰符是否有public
sb.append(field.toGenericString()+"\n");
}
}
sb.append("公共方法:\n");
//获得代表所有方法的Method数组
Method[] methods = clazz.getDeclaredMethods();
for(Method method : methods) {
String modifier = Modifier.toString(method.getModifiers());
if(modifier.contains("public")) {//查看修饰符是否有public
sb.append(method.toGenericString()+"\n");
}
}
return sb.toString();
}
public static void main(String args[]){
System.out.println(new TestDemo().toString(new java.util.Date()));//在此处传入你要反射查询的java类,比如此处查询的是Date()类
}
}
通过重写toString()方法,反射出某个类中的具体信息
最新推荐文章于 2022-12-02 04:25:57 发布