想象一下,您必须包装java.sql.ResultSet
的实例。你不能扩展它,因为你不知道具体实现ResultSet
的具体类是什么。您可以只聚合实例,实施ResultSet
并覆盖所有方法。对象包装的代码生成工具
现在想象一下你想改变一个方法的行为。所有其他重载方法只是一个很长的样板是这样的:
public void foo() {
wrapped.foo();
}
你知道任何自动代码生成工具,可以为我(无论是独立的或纳入普通的IDE)完成这项任务?
想象一下,您必须包装java.sql.ResultSet
的实例。你不能扩展它,因为你不知道具体实现ResultSet
的具体类是什么。您可以只聚合实例,实施ResultSet
并覆盖所有方法。对象包装的代码生成工具
现在想象一下你想改变一个方法的行为。所有其他重载方法只是一个很长的样板是这样的:
public void foo() {
wrapped.foo();
}
你知道任何自动代码生成工具,可以为我(无论是独立的或纳入普通的IDE)完成这项任务?
Eclipse,用ResultSet作为成员创建一个类,把光标放在这个成员上,然后选择菜单“Source> Generate delegate Methods”。
检查你想要的方式来产生的代表,它的完成。
任何体面的IDE应该能够做到这一点。例如。在InteilliJ的想法:代码 - >生成 - >委托方法
如果该类具有类实现/扩展的类型的成员字段此选项变得可用。
真的很可爱。我在Eclipse中没有注意到的东西。谢谢! – gd1 2013-02-16 19:42:25
+1这真的很不错,它会派上用场。 – arshajii 2013-07-23 20:32:38