在 Java 中,Class<T> 和 ClassLoader 是造物之始。
万物皆是“某类T” 的存在物,而“某类T” 是“万类之类 Class<T>” 的存在物,类别也是一种存在物,存在物即 Object。
实例 t -> 类别 T -> 所有类别的抽象 Class<T> -> Object。
要创造类别 T 的实例,先通过某种方式(ClassLoader)找到该物的“种子”(Class<T> 对象),然后通过该种子来创造具体的物 t。
要生成一个 Integer 对象,先找到 Class<Integer> , 然后 newInstance 出 Integer 的实例。
而造物也要有个规则,“女娲造物”和“凡人造物”,如果要造一模一样的物种,必须先经由女娲造物,否则就会造成混乱(至少软件中会出现问题)。
在 Java 里就有 BootstrapClassLoader -> ExtClassLoader -> AppClassLoader -> CustomClassLoader 的先后规则。