我有一个实现两个接口(interface)的类。其中一个接口(interface)是在第二方 jar 中定义的,另一个接口(interface)直接在我的代码中定义。
现在我需要将一个对象传递给仅实现我在代码中定义的接口(interface)的第三方。我的疑问是,如果这只是将我的对象向下转换为我定义的接口(interface),或者甚至我向下转换,该第三方仍然需要第二方库,因为在内部我传递的类仍然保留对第二方 jar 中定义的接口(interface)的引用.
为了可视化场景,需要一些代码......
我的代码中的接口(interface):
public interface MyInterface {}
Secondparty.jar 中的接口(interface):
public interface SecondpartyInterface {}
我的目标:
public MyObject implements MyInterface, SecondpartyInterface {}
现在第三方调用我代码中的一个方法,应该类似于:
private MyObject object;
public MyInterface getObject() {
return (MyInterface)object;
}
第三方有my.jar,其中仅包含MyInterface。这项工作有效吗?或者第三方也需要第二方的 jar 吗?
谢谢。
最佳答案
这实际上取决于一件事,原始代码在运行时是否存在。如果您正在运行一个常见的主程序(比如一些加载插件的 API),那么这可能不是问题。否则,您可以遮蔽您的库,以便将它们加载到您的 jarfile 中,然后依赖项将遮蔽您或从您的实例运行。
关于java - 向下转型类内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23380297/