快速实现包装在Eclipse(委托方法)?(Fast implement wrapping (del

2019-07-21 13:30发布

有一些模板或东西来实现与访问到卷绕体iterface的方法呢?

例如,假设我有

public class MyClass implements List<Something> {

    private final List<Something> core;

...
}

现在我想实现List<Something>通过传递调用裹得像

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

等等。

Answer 1:

有。 使用源菜单 - >生成委托方法...



Answer 2:

我会说一点关于“生成委托方法”重构是如何工作的像你描述的创建一个转发类别。

你让其中任意实现该接口的新类,并为它提供与要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);
   }

等等...



Answer 3:

经测试,在月神。

使用快捷键Alt - 转移 - S,M 2倍。 按Enter键



文章来源: Fast implement wrapping (delegate methods) in Eclipse?