package chapt1_基础;
import java.lang.reflect.Field;
class People{
public String username;
public String password;
public People(String username, String password)
{
this.username = username;
this.password = password;
}
}
public class TestClass {
public static void main(String[] args) {
//获得Class
//1.Class.forName("");
Class clz1 =null;
try {
clz1 = Class.forName("chapt1_基础.Test11");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//2.类.class
Class clz2 = People.class;
//3.对象.getClass();
People t = new People("username", "password");
Class clz3 = t.getClass();
//4.基础数据类型.class
Class clz4 = int.class;
//5.基础数据类型封装类.TYPE
Class clz5 = Integer.TYPE;
//对Class进行操作
//Class的实例包含了类的各种信息:保存类的数据结构
System.out.println(clz2.getName());
Field[] field = clz2.getDeclaredFields();
System.out.println(field[0].getName());
}
}
当拿到该类的Class实例之后,就可以获取该类的字段(java.lang.reflect.Field)、构造方法(Contructot)、其他方法(Method)、注解(Annotation)等等各种信息,
其次可以实例化该对象,
再者,在实例化之后,可以调用该类的方法。
通过Class获取class对象后,若继续使用反射,详见 : http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html