1

想象一下,您必须包装一个java.sql.ResultSet. 您无法扩展它,因为您不知道ResultSet实际实例化的具体类是什么。您可以只聚合实例、实现ResultSet和覆盖所有方法。

现在假设您只想更改一种方法的行为。所有其他被覆盖的方法只是一个像这样的长样板:

public void foo() {
    wrapped.foo();
}

您是否知道任何可以为我执行这项工作的自动代码生成工具(独立的或包含在常见 IDE 中)?

4

2 回答 2

2

Eclipse中,创建一个以 ResultSet 作为成员的类,将光标放在该成员上,然后选择菜单“Source > Generate delegate Methods”。

在此处输入图像描述

检查您要为其生成委托的方法并完成。

于 2013-02-16T19:38:59.090 回答
1

任何体面的 IDE 都应该能够做到这一点。例如在 IntelliJ Idea 中:代码 -> 生成 -> 委托方法

如果类的成员字段具有类实现/扩展的类型,则此选项可用。

于 2013-02-16T19:38:47.557 回答