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反射通用类 获取所有成员变量 构造方法 成员方法
猜你喜欢
转载自ysong-summer.iteye.com/blog/2232076
今日推荐
周排行