Intellij Idea IDE是否具有复合Java类的功能(转发类生成)

Ale*_*kov 2 java facade intellij-idea

例如,我想扩展HashSet类,但不是扩展类,而是给新类提供一个引用现有类的实例的私有字段.新类中的每个实例方法都在现有类的包含实例上调用相应的方法并返回结果.这是一种组合和转发方法.

即,例如,我想基于以下内容IDE生成ForwardingSetSet:

public class ForwardingSet<E> implements Set<E> {
     private final Set<E> s;

     public ForwardingSet(Set<E> s){ 
            this.s = s; 
     }

     public boolean contains(Object o){ 
            return s.contains(o); 
     }

     public boolean isEmpty(){
            return s.isEmpty();
     }


... and etc.

}
Run Code Online (Sandbox Code Playgroud)

那么,我怎么能在它中生成它Idea

PS:类似的问题在这里,但没有答案.

Fer*_*big 6

这可以使用"生成委派方法"功能来完成:

  1. 创建一个仅包含要委派的字段的基本类:

    public class ForwardingSet<E> implements Set<E> {
         private final Set<E> s;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 右键单击局部s变量后按"生成"

  3. 在弹出窗口中选择"委派方法",然后选择局部s变量

  4. 选择要覆盖的所有内容

  5. (可选)使用复制和替代,以取代public@Override public手动,然后在文件中删除它的首次公开,摆脱所有覆盖警告