有Java包装器注释吗?

有Java包装器注释吗?,java,design-patterns,Java,Design Patterns,试图找到一种方法来包装一个对象,它是基于一些模型自动生成的,有很多getter和setter。例如: class ObjectToWrap { public int getIntA(); public int getIntB(); ... // Tons of other getters } 我必须创建一个包装器来包装这个对象,并使用一些注释为我从ObjectToWrap生成方法。代码如下所示: class Wrapper { private Object

试图找到一种方法来包装一个对象,它是基于一些模型自动生成的,有很多getter和setter。例如:

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
}

是否有注释可以执行此操作?我只是不想让代码看起来太长。

如果您使用的是带有依赖关系管理的maven构建基础设施,那么您可以有一个依赖子项目,按原样(而不是代码)收集生成的源。然后,另一个子项目可以将它们生成真实的源代码(源代码转换)作为zip,然后maven可以将其作为预编译目标导入主项目中

在此基础上,您可以使用动态代理类,甚至是即时生成的类


唯一的另一种选择是使用java脚本API,并使用JavaScript等进行业务。失去java的类型安全性,降低软件质量


不幸的是,另一种JVM语言< /强>的混合用法的替代品我不能考虑有生产力。非常漂亮和强大的Scala仍然太过狂野/复杂/棘手。

看看Lombok项目,它有一个@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;

}

顺便说一句,你试图实现的是自动创建委托方法:@Zhuinden,你指的是什么确切的注释?这称为委托,当这些生成的类是接口时,使用@DirkLachowski的链接,动态代理。