【发布时间】:2019-12-03 21:40:45
【问题描述】:
我有一些由类加载器加载的类 B。 我有我的类 A,它扩展了类 B'(它的名称和包路径等于 B 之一,但 B 和 B ' 放在不同的罐子里)
我的问题是,是否可以类加载类 A?还是会出现异常?(由于类 B 和 B' 冲突)
【问题讨论】:
-
“我有一些类
B由类加载器加载” 所有类都由类加载器加载。你是说你有多个独立的类加载器吗?B和B'在同一个类加载器中吗?如果是同一个类加载器,那么只会加载其中一个,例如jar 文件在类路径中首先列出的那个。如果不同的类加载器,那么它们就是不同的类,即使它们具有相同的 FQN,即使它们来自同一个 jar 文件的相同.class文件,并且不兼容分配。 -
@Andreas 相同的类加载器。 B'首先加载。 B和A之后。 A 类扩展了 B。
-
如果 B' 和 B 具有相同的包和类名,即相同的 FQN(完全限定名),那么单个类加载器不会同时加载它们,所以你刚才说的不可能是真的.
标签: java