什么是反射
通过Java反射可以实现以下功能
就像照镜子可以看请自己,反射使程序可以看清一个类的情况并加以使用,Java反射机制能够探知类的基本结构,这种对Java类结构探知的能力,称为Java类的“自审”,并且,反射机制使构建框架的基础所在。
java反射常用API
获取类的信息
一个类或者接口被加载后,从系统中都能获得一个代表该类或接口的Class实例,通过该实例就可以访问到Java虚拟机中这个类会接口。
获取Class实例
Java程序中获取Class实例通常有如下三种方式,根据实际情况选择。
从Class实例中获取信息
在获得了某个类型对应的Class实例后,就可以调用Class实例的方法来获得该类型的信息。Class提供了大量实例方法来获取对应类型的详细信息。
获取类型的基本信息
示例1:
创建一个User类用于测试:
package pm;
public class User{
private String name;
private int age;
private String address;
private char sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", address=" + address
+ ", sex=" + sex + "]";
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public User() {
super();
}
public User(String name, int age, String address, char sex) {
super();
this.name = name;
this.age = age;
this.address = address;
this.sex = sex;
}
}
示例2:通过反射方式获取User类的基本信息
package pm;
public class 获得Class实例 {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[