当前位置: 首页 > 面试题库 >

您可以强制Java对象在运行时实现接口吗?

乐正浩宕
2023-03-14
问题内容

现在我以下:

1)一个Java接口。

2),它的具体的java类 执行上述接口,但 包含的方法签名的接口中定义的方法中的每一个匹配。

由于我无法更改第2项的实现,因此我想知道是否可以使接受第1项实例作为参数的方法接受没有类强制转换的第2项。

感觉像Spring中的各种编织/强制/ AOP机制应该可以实现这一点,但是我不知道该怎么做。

有没有办法做到这一点?


问题答案:

您可以强制Java对象在运行时实现接口吗?

是的,使用动态代理或字节码重写。但是,在我看来,您似乎正在寻找Adapter pattern



 类似资料:
  • 问题内容: 我正在一个项目中,该项目有很多由库创建的对象,并且无法访问这些对象的创建过程。 以下代码片段很好地说明了我的问题。 码: 是Clazz在编译时可能会或可能不会实现的接口。 码: 以下代码是我遇到的问题。请注意以下几点: 仅在c是的实例时调用。 并且都是我无法访问的类中的私有方法。 在编译时,将 不 包含名为的方法。 ExampleExecutor 不是 我的课程。我无法以任何方式访问它

  • 问题内容: 我在运行时加载JSON配置文件,并使用接口定义其预期结构: 由于可以使用自动填充等功能,因此可以方便地访问各种属性。 问题: 有没有一种方法可以使用此声明来检查我加载的文件的正确性? 即我没有意外的属性? 问题答案: 没有。 当前,类型仅在开发和编译期间使用。类型信息不会以任何方式转换为已编译的JavaScript代码。

  • 问题:有没有一种方法可以使用这个声明来检查我加载的文件的正确性?我没有意外的财产?

  • 问题内容: 这与java中的最终接口有关。在讨论中,有一个关于接口的最终概念是模棱两可的。最终接口是否意味着它不能具有子接口?这是否意味着它无法实现? 这个问题是第一个问题:您是否可以编写一个最终接口,以便编译器阻止您实现它? 问题答案: 正如我将展示的,可以使用代理来实现上面的接口。更有意义的问题是,为什么要尝试创建无法实现的界面?即使从哲学角度来说,它似乎也很肤浅。 这不会在编译或运行时产生错

  • 在OOP中,抽象是当我们只向用户提供有用的细节,并隐藏所有实现细节时。那么,如果我有一个接口,并且我在一个类中实现它,那么这是如何实现抽象的呢?我读了这篇关于“如何使用接口实现100%的抽象”的文章 如果这个问题听起来离题或者含糊不清,那么它真的是,我想知道的是oop中的抽象是如何与接口相关的。

  • 问题内容: 有没有为接口方法创建默认实现的首选方法或样式?假设我有一个常用的接口,在90%的情况下,我想要的功能是相同的。 我的第一个直觉是用静态方法创建一个具体的类。然后,当我想要默认功能时,可以将功能委托给静态方法。 这是一个简单的示例: 接口 方法的具体实现 使用默认功能的具体实现 这里有更好的方法吗? 编辑 在看到了一些建议的解决方案之后,我认为我应该更加清楚自己的意图。本质上,我正在尝试