有一些模板或东西来实现与访问到卷绕体iterface的方法呢?
例如,假设我有
public class MyClass implements List<Something> {
private final List<Something> core;
...
}
现在我想实现List<Something>
通过传递调用裹得像
@Override
public int size() {
return core.size();
}
等等。
有一些模板或东西来实现与访问到卷绕体iterface的方法呢?
例如,假设我有
public class MyClass implements List<Something> {
private final List<Something> core;
...
}
现在我想实现List<Something>
通过传递调用裹得像
@Override
public int size() {
return core.size();
}
等等。
有。 使用源菜单 - >生成委托方法...
我会说一点关于“生成委托方法”重构是如何工作的像你描述的创建一个转发类别。
你让其中任意实现该接口的新类,并为它提供与要delgate,如类型的字段:
public class NewClass implements ThatInterface {
private final ThatInterface delegate;
public MyClass(ThatInterface delegate) {
this.delegate = delegate();
}
}
然后你申请日食重构。 (加利福尼亚 - 3德勒...是访问一个简单的方法。)选择新字段的复选框。 它的所有方法将被添加为代表。
(这里有一个错误,我认为,在重构Eclipse的氧气,它会复制default
从接口上该关键字的方法关键字。您可能需要删除关键字)。
因此,对于代表对重构所产生的列表:
public class NewClass {
private final List<String> delegate;
public NewClass(List<String> delegate) {
this.delegate = delegate;
}
public void forEach(Consumer<? super String> 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);
}
等等...
经测试,在月神。
使用快捷键Alt - 转移 - S,M 2倍。 按Enter键