如何使用来自不可访问的 .jar 的自定义对象

How to use a custom object from a not accessible .jar

我有一个程序使用的 .jar 文件,我想为其编写扩展名。我的一个新方法需要那个 jar 中的自定义对象。 如果我导入那个自定义 class,我会收到一个错误,因为在 Eclipse 中,导入的 class 和所需的 class 似乎不同,即使它们具有相同的名称。

是否可以使用来自不同项目的对象?

我无法导入 jar,因为它是一个扩展。所以可以下载使用。我只想扩展此扩展程序,但不想更改扩展程序本身。 我已尝试投射对象,但出现无法投射的错误消息。

这听起来像是 class路径问题。原始扩展很可能位于 class 路径中,并且再次作为扩展扩展的一部分。对于 JVM 认为相同的 class,它必须在同一个包中,具有相同的名称 并且 由相同的 classloader 加载.因此,从您的扩展扩展 .jar 加载的 class 绝对被认为与另一个 classloader 从原始扩展 .jar 加载的任何同名的 class 不同,即使它们在事实上 bit-by-bit 相同。