import java.lang.reflect.Modifier;
public class ReflectionTest {
public static void main(String[] args) {
Class c = null;//定义一个 Class 对象 c
try {
c = Class.forName("java.lang.String");//通过Class的forName方法获得String类
//的内部结构
System.out.println("package " + c.getPackage().getName() + ";");//输出包名
System.out.print(Modifier.toString(c.getModifiers()) + " ");//使用Modifier这个
//工具类获得修饰符
System.out.print(c.getSimpleName() + " ");//获得类名,当然,在知道这个代码
//本身是对哪一个类进行访问的时候,可以这样做
//System.out.print("String");
System.out.print("extends " + c.getSuperclass().getSimpleName()
+ " ");//父类名称
Class[] inters = c.getInterfaces();//接口名称,可能会有多个接口
if (inters.length > 0) {
System.out.print("implement");
for (int i = 0; i < inters.length; i++) {
System.out.print(" " + inters[i].getSimpleName());
if (i < inters.length - 1) {
System.out.print(",");
}
}
}
System.out.println("{");
printField(c);
printMethod(c);//这两个方法在此代码中尚未实现,但是整体思路已经相当明确
System.out.println("}");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void printField(Class c){
}
public static void printMethod(Class c){
}
}