试图找到一种包装对象的方法,该方法是基于具有大量吸气剂和吸气剂的某些模型自动生成的。例如:

class ObjectToWrap {

    public int getIntA();

    public int getIntB();

    ... // Tons of other getters
}


我必须创建一个包装该对象的包装程序,并使用一些注释为我生成来自ObjectToWrap的方法。代码如下所示:

class Wrapper {
    private ObjectToWrap obj;

    public int getIntA() {
        return obj.getIntA();
    }

    public int getIntB() {
        return obj.getIntB();
    }

    ... // Tons of other getters
}


有注释可以做到这一点吗?我只是不想让代码看起来冗长。

最佳答案

看一下具有@Delegate批注的Lombok项目,它完全可以满足您的需求。

@Delegate documentation

我认为您可以做到这一点:

import lombok.Delegate;
class Wrapper {
    //the types field in the annotation says
    //to only auto generate deleagate methods
    //for only the public methods in the ObjectToWrap class
    //and not any parent classes if ObjectToWrap extended something
    @Delegate(types = ObjectToWrap.class)
    private ObjectToWrap obj;

}

08-26 04:36