反射
前言:
以前在物理课堂上就学习过反射的内容,而现在在java代码中,反射的意义又有所不同了。在Java中,反射就是通过某种机制,动态得到这个类所有信息(属性,方法,构造方法…), 也可以动态的调用这个类所有的属性,方法,构造方法…
一、反射常用的API
- Class类:反射的核心类,反射所有的操作都是围绕该类来生成的,通过它,可以获取类的属性,方法等内容;
- Field类:表示类的属性,可以获取和设置类中属性的值 Method类:表示类的方法,它可以用来获取类中方法的信息,或者执行方法
- Constructor类:表示类的构造方法
二、反射的应用
例子(有一个Student类):
/**
* Student类
*/
public class Student {
//属性
private int id;
private String name;
//有参构造方法
public Student(int id, String name) {
this.id = id;
this.name = name;
}
//无参构造方法
public Student() {
}
//私有构造方法
private Student(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//普通方法
public void study(){
System.out.println(this.name+"学生正在学习!!");
}
//toString()方法
@Override
public String toString() {
final StringBuilder sb = new StringBuilder(