import java.lang.reflect.*; import java.util.*; class PPerson { public static String name;// 静态成员 public final int MAX ; // 常量在定义的时候可以直接初始化,也可以 在构造函数里面初始化 public int age ; public PPerson() { name = "google"; age = 10; MAX = 100; } public PPerson(int d ) { MAX =2; } public String getName() { return this.name; } public int getAge() { return this.age; } public static void Say() { System.out.println("I'm Say..."); } } public class Reflect { public static void main(String args[]) throws Exception { Class pp = Class.forName("PPerson"); System.out.println(pp.getName()); //得到类的名字 Field field[] = pp.getFields(); //得到字段 System.out.println(Arrays.toString(field)); Method method[] = pp.getMethods();// 得到 方法 System.out.println(Arrays.toString(method)); Constructor cons[] = pp.getConstructors(); for(Constructor c : cons) System.out.println(c); PPerson person = (PPerson) pp.newInstance(); person.Say(); } } /* * Java 反射机制 * * 1. 先得到该类的Class ,然后利用Class 里面的方法 * 得到 Class 对象的方法有: * String.class * new String().getClass() * Class.forName("String") * 2.Class 类里面的方法,也是利用 得到 的Class对象来进行一个类型的查询 * getName * getFields * getMethods * getConstructors * newInstance * */
http://hi.baidu.com/changsheng/blog/item/87353af3d6fba350352accd6.html