有没有办法在Eclipse中自动生成包装器?

Yur*_*kov 20 java wrapper

我必须创建几个代理,例如添加日志记录.像这样的东西:

interface IMath {
    public int add(a, b);
}

class Math implements IMath {
    public int add(a, b) { return a + b; }
}

class MathWithLogs implements IMath {
    private IMath realMath;
    public int add(a, b) {
        Log.d("tag", "valueable info");
        return realMath.add(a, b);
    }
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,只要这些接口不是20种方法,我只需要添加一些东西.

我的问题是,有没有办法用eclipse的一些插件自动生成包装类?

或者除非另有说明(比如@Override),否则有一种方法可以使用注释来调用realMath中的方法?

Ved*_*Ved 29

右键单击任何源文件(.java)并导航到 source -> Override/Implement Methods/Generate Delegate Methods.

第一个将粘贴您的直接接口的所有方法的主体.第二个将对所有层次结构执行相同的操作(我猜,不确定).希望这可以帮助.


Jes*_*erE 10

是的,有一个名为"生成委托方法"的源生成器,它将完全按照您的要求执行.


Kid*_*rla 8

在阅读了其他答案后,我花了一段时间才弄明白该做什么.解决方案是:

  1. 创建实现所需接口的(最初为空)包装类.确保在创建类时取消选中"继承的抽象方法".
  2. 在新的包装器类中(由于它缺少接口实现,此时将显示错误),创建一个类型等于所需接口的字段.
  3. 右键单击刚刚创建的字段,然后选择Source - > Generate Delegate Methods.
  4. 检查要创建的方法,然后单击"确定".
  5. 最后,为字段添加单arg构造函数或setter方法(它不会作为此过程的一部分自动生成).