在Eclipse中快速实现包装(委托方法)?

是否有一些模板或东西来实现iterface方法访问包装成员?

例如,假设我有

public class MyClass implements List { private final List core; ... } 

现在我想通过将调用传递给包装来实现List

 @Override public int size() { return core.size(); } 

等等。

有。 使用源菜单 – >生成委托方法…

我将更多地谈论“生成委托方法”重构如何工作以创建像您描述的转发类。

您创建了一个可选择实现接口的新类,并为其提供了一个具有您想要degate类型的字段,例如:

 public class NewClass implements ThatInterface { private final ThatInterface delegate; public MyClass(ThatInterface delegate) { this.delegate = delegate(); } } 

然后你应用eclipse重构。 (Cmd-3 deleg …是一种访问它的简单方法。)选择新字段的复选框。 它的所有方法都将作为代表添加。

(我认为,在Eclipse氧气的重构中存在一个错误,它会在界面上使用该关键字的方法复制default关键字。您可能需要删除该关键字。)

因此,对于List的委托,生成了重构:

 public class NewClass { private final List delegate; public NewClass(List delegate) { this.delegate = delegate; } public void forEach(Consumer action) { delegate.forEach(action); } public int size() { return delegate.size(); } public boolean isEmpty() { return delegate.isEmpty(); } public boolean contains(Object o) { return delegate.contains(o); } 

等等…

在Luna测试。

使用快捷键AltShiftSM 2次。 按Enter键