首页 > 代码库 > JAVA 反射
JAVA 反射
Person.java
package reflect;public class Person { private String name; private int age; public Person() { } public Person(String name) { this.name = name; } public Person(int age) { this.age = age; } public Person(String name, int age) { this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "[name = " + name + ", age = " + age + "]"; } }
ReflectTest.java
package reflect;import java.lang.reflect.*;public class ReflectTest { /** * @param args */ public static void main(String[] args) { Class<?> cl = null; try { cl = Class.forName("reflect.Person"); String modifiers = Modifier.toString(cl.getModifiers()); if (modifiers.length() > 0) System.out.print(modifiers + " "); System.out.println(cl.getName() + "{"); } catch (Exception e) { e.printStackTrace(); } printFields(cl); System.out.println(); printConstructors(cl); System.out.println(); printMethods(cl); System.out.println("}"); } public static void printConstructors(Class<?> cl){ Constructor<?>[] c = cl.getConstructors(); for (int i = 0; i < c.length; i++) { String modifiers = Modifier.toString(c[i].getModifiers()); if (modifiers.length() > 0) System.out.print(modifiers + " "); String name = c[i].getName(); System.out.print(name + "("); Class<?>[] paramTypes = c[i].getParameterTypes(); for (int j = 0; j < paramTypes.length-1; j++) System.out.print(paramTypes[j].getName() + ","); if (paramTypes.length > 0) System.out.print(paramTypes[paramTypes.length-1]); System.out.println(");"); } } public static void printFields(Class<?> cl) { Field[] fields = cl.getDeclaredFields(); for (Field f : fields) { String modifiers = Modifier.toString(f.getModifiers()); if (modifiers.length() > 0) System.out.print(modifiers + " "); String name = f.getName(); System.out.println(name + ";"); } } public static void printMethods(Class<?> cl) { Method[] methods = cl.getDeclaredMethods(); for (Method m : methods) { String modifiers = Modifier.toString(m.getModifiers()); if (modifiers.length() > 0) System.out.print(modifiers + " "); Class<?> retType = m.getReturnType(); String name = m.getName(); System.out.print(retType.getName() + " " + name + "("); Class<?>[] paramTypes = m.getParameterTypes(); for (int i = 0; i < paramTypes.length; i++) { if (i > 0) System.out.print(", "); System.out.print(paramTypes[i]); } System.out.println(");"); } }}
打印结果:
public reflect.Person{private name;private age;public reflect.Person(class java.lang.String);public reflect.Person(int);public reflect.Person(java.lang.String,int);public reflect.Person();public java.lang.String toString();public java.lang.String getName();public void setName(class java.lang.String);public void setAge(int);public int getAge();}
JAVA 反射
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。