是否有 Java 包装器注释?

boh*_*anl 2 java design-patterns

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

class ObjectToWrap {

    public int getIntA();

    public int getIntB();

    ... // Tons of other getters
}
Run Code Online (Sandbox Code Playgroud)

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

class Wrapper {
    private ObjectToWrap obj;

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

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

    ... // Tons of other getters
}
Run Code Online (Sandbox Code Playgroud)

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

dka*_*zel 5

看看 Project Lombok,它有一个 @Delegate 注释,它完全符合你的要求。

@Delegate 文档

我认为你可以这样做:

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;

}
Run Code Online (Sandbox Code Playgroud)