一,本章目标
1.可以使用反射取得实现的全部接口
2.可以使用反射取得一个类所继承的父类
3.可以使用反射取得一个类的全部构造方法
4.可以使用反射取得一个类中全部的方法
5.可以使用反射获得一个类中的全部属性
二,具体内容
一个操作类如下:
package 取得类的结构;
public class Person implements China{
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(){
}
public Person(String name){
this.name = name;
}
public Person(int age){
this.age = age;
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
public void sayChina() {
// TODO Auto-generated method stub
System.out.println("作者:" + AUTHOR + ",国籍:" +NATIONAL );
}
public String sayHello(String name, int age) {
// TODO Auto-generated method stub
return name + ",你好!我今年:" + age + "岁了!";
}
}
interface China{
public static final String NATIONAL = "China";
public static final String AUTHOR = "李兴华";
public void sayChina();
public String sayHello(String name,int age);
}
2.1得到全部的接口
public Class<?>[] getInterfaces()
因为一个类可以实现多个接口,所以此处以一个数组的方式返回。
2.2取得一个类的父类
public Class<? super T>getSuperclass(),此方法返回的是Class实例,和之前得到的接口一样,都有getName方法。
Objcet是任何类的父类
2.3取得全部构造方法
以上代码虽然确实取得了全部的构造方法,但是此时是通过对象直接打印取得的,肯定会调用Constructor类中的toString方法。
Constructor类中存在之下几种方法:
取得修饰符:public int getModifiers
取得方法名称:public String getName
取得参数类型:public Class<?>[] getParameterTypes
还原修饰符代码如下:
2.4取得类中的全部方法
public Method[] getDeclaredMethods() throws SecurityException --->输出本类中的全部方法
public Method[] getMethods() throws SecurityException --->输出全部的方法(继承的父类,接口)
2.5取得类中的属性
三,总结