1.8_2 意外之处

Java 的反射 API 中有一些很特别的地方,刚接触时不好理解。

// true
Class.class.isInstance(Class.class);

回忆 Class literal 语法,将 Class 视为对象,则其 Class 对象为 Class.class,上面代码表明,Class 对象是 Class 类的实例,这形成一个循环,如图 1.5 所示:

元类metaclass),是特殊的类,元类的 实例 也是类,Class 是 Java 中 唯一 的元类。

在 Java 中,所有对象都有自己的类,所有的类又都是对象Class 是特殊的类:

  • 作为 元类,它的 实例对象普通类
  • 作为 对象,它拥有自己的类型,Java 规定,其类型也是 Class 类。

如果没有上面的循环依赖,Java 的依赖树将 无限生长

results matching ""

    No results matching ""