Java 反射机制
一 获取Class对象的三种方法
1 Class.forNname()方法:使用Class.forName()方法时,你必须提供一个类的全名,这个全名包括类所在的包的名字
2 .class
3 getClass()方法
example:
class Student{
private String name;
private Integer age;
private char gender;
public student(String name, Integer age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
}
//第一种
Class c1 = Class.forName("Student");
//第二种
Class c2 = Student.class;
//第三种
Student stu = new Student();
Class c3 = stu.getClass();
二 创建对象:获取类以后我们来创建它的对象,利用newInstance
Class c1 = Class.forName("Student");
Object student = c1.newInstance();
三 获取对象的属性
getDeclaredMethods() 获取所有的方法
getReturnType() 获得方法的放回类型
getParameterTypes() 获得方法的传入参数类型
getDeclaredMethod("方法名",参数类型.class,……) 获得特定的方法
构造方法关键字 含义
getDeclaredConstructors() 获取所有的构造方法
getDeclaredConstructor(参数类型.class,……) 获取特定的构造方法
父类和父接口 含义
getSuperclass() 获取某类的父类
getInterfaces() 获取某类实现的接口