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()方法,反射出某个类中的具体信息
猜你喜欢
转载自vaxvall.iteye.com/blog/2411506
今日推荐
周排行