取得类的继承结构
实际上Class类最大的功能是可以完全的去解剖一个类,例如:在类定义的时候往往需要编写以下的内容:
类所在的包;
|-public Package getPackage()
类的声明方式;(都在Class类里面);
|-取得完整类名称(包.类):public String getName(),会返回包名称
|-取得类名称:public String getSimpleName()
类所继承的父类;
|-取得父类:public Class<? super T> getSuperclass()
类所实现的接口;
|-取得所有父接口:public Class<?>[] getInterfaces()
范例:取得类的基本信息
import java.io.Serializable; interface Massage{}; public class Dome3 extends Object implements Serializable,Cloneable,Massage { }
public class Demo3_1 { public static void main(String[] args) throws ClassNotFoundException { Class<?> cls=Class.forName("cn.zwb.dome1.Dome3"); System.out.println("包名称:"+cls.getPackage().getName()); System.out.println("类名称:"+cls.getSimpleName()); System.out.println("父类名称:"+cls.getSuperclass().getSimpleName()); Class<?> icls[] =cls.getInterfaces();//取得全部接口; for (int i = 0; i < icls.length; i++) { System.out.println(icls[i].getSimpleName()); } } }
通过以上的代码可以发现,整个的反射机制中,Class是一切操作的源头.