Java反射通用类 获取所有成员变量 构造方法 成员方法
2015-08-01 01:54
537 查看
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class ReflectUtil { public static void main(String[] args) { try { String classNameString = "java.lang.Math"; Class c = Class.forName(classNameString); reflectDeclaredFields(c); System.out.println("\n"); reflectDeclaredConstructors(c); System.out.println("\n"); reflectDeclaredMethods(c); reflectFields(c); System.out.println("\n"); reflectConstructors(c); System.out.println("\n"); reflectMethods(c); } catch (Exception e) { e.printStackTrace(); } } /** * 反射所有变量 * * @param c */ public static void reflectDeclaredFields(Class c) { try { Field[] fields = c.getDeclaredFields(); System.out.println("this class has " + fields.length + " field"); for (Field field : fields) { System.out.println(Modifier.toString(field.getModifiers()) + " " + field.getType().getSimpleName() + " " + field.getName()); // System.out.println(field); } } catch (Exception e) { e.printStackTrace(); } } public static void reflectFields(Class c) { try { Field[] fields = c.getFields(); System.out.println("this class has " + fields.length + " field"); for (Field field : fields) { System.out.println(Modifier.toString(field.getModifiers()) + " " + field.getType().getSimpleName() + " " + field.getName()); // System.out.println(field); } } catch (Exception e) { e.printStackTrace(); } } /** * 反射所有构造方法 * * @param c */ public static void reflectDeclaredConstructors(Class c) { try { Constructor[] constructors = c.getDeclaredConstructors(); System.out.println("this class has " + constructors.length + " constructor"); for (Constructor constructor : constructors) { StringBuilder sb = new StringBuilder( Modifier.toString(constructor.getModifiers()) + " " + constructor.getName() + "("); Class[] types = constructor.getParameterTypes(); if (types.length > 0) { for (Class type : types) { sb.append(type.getSimpleName() + ","); } sb.deleteCharAt(sb.length() - 1); } sb.append(")"); System.out.println(sb); // System.out.println(constructor); } } catch (Exception e) { e.printStackTrace(); } } public static void reflectConstructors(Class c) { try { Constructor[] constructors = c.getConstructors(); System.out.println("this class has " + constructors.length + " constructor"); for (Constructor constructor : constructors) { StringBuilder sb = new StringBuilder( Modifier.toString(constructor.getModifiers()) + " " + constructor.getName() + "("); Class[] types = constructor.getParameterTypes(); if (types.length > 0) { for (Class type : types) { sb.append(type.getSimpleName() + ","); } sb.deleteCharAt(sb.length() - 1); } sb.append(")"); System.out.println(sb); // System.out.println(constructor); } } catch (Exception e) { e.printStackTrace(); } } /** * 反射所有成员方法 * * @param c */ public static void reflectDeclaredMethods(Class c) { try { Method[] methods = c.getDeclaredMethods(); System.out.println("this class has " + methods.length + " method"); for (Method method : methods) { StringBuilder sb = new StringBuilder(Modifier.toString(method.getModifiers()) + " " + method.getReturnType().getSimpleName() + " " + method.getName() + "("); Class[] types = method.getParameterTypes(); if (types.length > 0) { for (Class type : types) { sb.append(type.getSimpleName() + ","); } sb.deleteCharAt(sb.length() - 1); } sb.append(")"); System.out.println(sb); // System.out.println(method); } } catch (Exception e) { e.printStackTrace(); } } public static void reflectMethods(Class c) { try { Method[] methods = c.getDeclaredMethods(); System.out.println("this class has " + methods.length + " method"); for (Method method : methods) { StringBuilder sb = new StringBuilder(Modifier.toString(method.getModifiers()) + " " + method.getReturnType().getSimpleName() + " " + method.getName() + "("); Class[] types = method.getParameterTypes(); if (types.length > 0) { for (Class type : types) { sb.append(type.getSimpleName() + ","); } sb.deleteCharAt(sb.length() - 1); } sb.append(")"); System.out.println(sb); // System.out.println(method); } } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- java反射2-获取构造方法、成员变量、成员方法
- java反射之获取方法,成员变量,构造方法
- java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。
- Java 通过反射获取类的信息(成员变量,成员方法,构造方法)
- Java笔记——利用反射机制获取成员变量及成员方法
- 反射(三)之通过反射获取构造方法, 成员变量, 成员方法
- Android(java)学习笔记109:通过反射获取成员变量和成员方法并且使用
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- java中利用反射机制得到一个类的所有构造方法,成员方法机器参数的列表
- java反射,获取类的方法,成员变量,构造函数信息
- Java学习提要——"反射"获取方法信息(成员函数、成员变量 、构造函数)
- 通过反射获取构造方法,成员变量及成员方法
- java 使用反射机制来获取私有方法和成员变量
- java反射学习笔记(3)---使用Class来获取方法、成员变量、构造函数信息
- 黑马程序员--Java基础加强--16.利用反射操作泛型V【通过Constructor反射解析泛型构造方法】【通过Field反射解析泛型成员变量】【个人总结】
- Java基础四: 反射(构造方法,成员变量,普通方法,数组)
- java反射,获取类对象所有成员变量,从字符串调用函数
- java构造方法、成员变量、方法所对应的反射实例
- Java SE练习 - 反射获取对象构造方法、成员变量、成员方法
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用