package cn.com.reflect;
import java.lang.reflect.Constructor;
public class Reflect {
private String name;
private int age;
public Reflect() {
super();
}
public Reflect(String name){
this.name = name;
}
public Reflect(int age){
this.age = age;
}
public static void main(String[] args) throws NoSuchMethodException, SecurityException {
Reflect re = new Reflect();
//通过Class类的对象clazz访问Reflect对象re的描述信息
Class clazz = re.getClass();
//获取包路径
System.out.println("****************获取包路径********************");
System.out.println(clazz.getPackage());
//获取类名称
System.out.println("****************获取类名称********************");
System.out.println(clazz.getName());
//获取该类继承的类
System.out.println("****************获取该类继承的类********************");
System.out.println(clazz.getSuperclass());
System.out.println("****************获取所有权限为public的构造方法********************");
//获取所有权限为public的构造方法
Constructor<Reflect>[] con = clazz.getConstructors();
for(int i=0;i<con.length;i++){
System.out.println(con[i]);
}
System.out.println("****************获取权限为public的指定构造方法********************");
Constructor<Reflect> con1 = clazz.getConstructor(int.class);
System.out.println(con1);
}
}