java - 从几乎与接口(interface)匹配的类动态创建实现?

标签 java wrapper

假设我有这个界面:

public interface Foo {
  int getBar();
  String getName();
  // ... 10 other methods
}

然后我有这个类,我无法修改它:

public final class FooImpl {
  int getBar();
  String getFirstName(); 
  String getLastName(); 
  // ... 10 other methods which matches Foo
}

我需要将 FooImpl 中的值用于采用 Foo 的方法。手动编写包装器(例如通过匿名类)非常容易,它实现 Foo 并将所有内容转发到 FooImpl 中的相应方法(除了 getName() ,它需要 getFirstName 和 getLastName 的一些额外逻辑)。有没有一种方法(最好是来自像 Guava 这样的通用库)来动态创建这样的包装器,考虑到以下要求:

  • 我想为一种或两种方法指定自定义逻辑
  • 对于其余的,只需转发到具有相同名称的方法

最佳答案

有一个办法。如果您创建您的接口(interface)的对象引用,其中包含实现该接口(interface)的类的对象的引用。然后该对象引用就能够访问这些东西。

关于java - 从几乎与接口(interface)匹配的类动态创建实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109590/

相关文章:

java - 如何多次水平打印二维数组

Java 未检查异常

java - 对话框导致应用程序崩溃

c# - 在 native dll 中创建 C++ 类以在 C# 中使用

powershell - 有没有办法以仅在将参数传递给别名的情况下运行的方式为cmdlet创建别名?

java - 删除对象节点树中具有空值的 JSON 对象

java - 将 Jtable 作为表打印到文件中

css - 包含 float div 时的包装器问题

java - 如何使用 Wrapper.exe 传递系统属性

c++ - 用 boost python 包装 C++ 模板类