Java 用于对象包装的代码生成工具
假设您必须包装一个Java 用于对象包装的代码生成工具,java,code-generation,Java,Code Generation,假设您必须包装一个java.sql.ResultSet的实例。您无法扩展它,因为您不知道实现ResultSet的具体类实际实例化了什么。您可以聚合实例,实现ResultSet并覆盖所有方法 现在假设您只想更改一个方法的行为。所有其他被重写的方法都只是一个很长的样板文件,如下所示: public void foo() { wrapped.foo(); } 你知道有什么自动代码生成工具可以为我执行这项工作(独立的或包含在通用IDE中)?任何一个像样的IDE都应该能够做到这一点。例如,在In
java.sql.ResultSet
的实例。您无法扩展它,因为您不知道实现ResultSet
的具体类实际实例化了什么。您可以聚合实例,实现ResultSet
并覆盖所有方法
现在假设您只想更改一个方法的行为。所有其他被重写的方法都只是一个很长的样板文件,如下所示:
public void foo() {
wrapped.foo();
}
你知道有什么自动代码生成工具可以为我执行这项工作(独立的或包含在通用IDE中)?任何一个像样的IDE都应该能够做到这一点。例如,在Intellij Idea中:代码->生成->委托方法
如果类有一个成员字段,该字段的类型为该类实现/扩展的类型,则此选项可用。在Eclipse中,创建一个以ResultSet为成员的类,将光标放在该成员上,然后选择菜单“Source>Generate delegate Methods”
检查要为其生成代理的方法,就完成了。这真是太可爱了。我在日食中没有注意到的东西。谢谢