java - 向下转型类内部

标签 java oop

我有一个实现两个接口(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/

相关文章:

fonts - 在 Linux 上为 Openjdk Java 定义/安装的字体在哪里

java - 连接到 StompClient 时我可能在哪里出错?

oop - 重写伴随对象值和 Scala MatchError

java - 在返回集合的接口(interface)中使用 Java 泛型。最佳实践?陷阱?

Java TimeZone 和时区名称的快捷方式问题

java - Jquery 验证后表单未提交

java - 给嵌套 map java赋值

c++ - 如何删除从基类继承的纯虚函数?

c++ - 为什么派生类不能在这段代码中调用 protected 成员函数?

java - 如何让对象访问其调用对象的变量并修改它们?