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



是否有一些模板或其他东西来实现访问包装成员的接口方法?

例如,假设我有

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

,现在我想通过传递调用来实现List<Something>,如

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

有。

我将多说一点关于"Generate Delegate Methods"如何重构来创建一个像你描述的转发类。

你创建一个新类,它可以选择性地实现接口,并为它提供一个带有你想要委托的类型的字段,例如:

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

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

(我认为在Eclipse oxygen的重构中有一个bug,它会在接口上复制带有default关键字的方法。您可能需要删除该关键字。)

对于List的委托,重构产生:

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);
   }

在Luna测试。

<<p>使用快捷方式kbd> Alt - 转变 - S , M 2次。按输入

相关内容

  • 没有找到相关文章

最新更新