1

我创建了一组代表 RESTful 资源的类,以及其他实际执行 HTTP 请求以检索和构建对象的帮助程序。我的课程如下所示:

class MyResource{
    Attribute id = new Attribute(this, long);
    Attribute name = new Attribute(this, String);
    /* etc */
}

现在碰巧我想使用 POJO 类来插入一个喜欢处理 POJO 的框架。

我想要这样的代理:

class MyResourceProxy{
    private MyResource realResource;

    public MyResourceProxy(MyResource o){realResource = o;}

    public long getId(){
        return realResource.id.get();
    }

    public void setId(long value){
        realResource.id.set(value);
    }

    public String getName(){
        return realResource.name.get();
    }

    public void setName(String value){
        realResource.name.set(value);
    }        
}

我不想维护那些代理类的代码,而只需要维护“资源类型”主类。

我进行了自省,发现了有关如何按需生成上述代理代码的提示。问题是:是否可以在编译时生成代码,然后将其与库一起编译?也许我走错了方向,但我正在做一些无趣的事情;)

你怎么看?谢谢!

4

2 回答 2

2

这取决于您构建的系统是什么,如果您的意思是javac,那么我会说不,但如果您使用antmaven那么您可以。

代码生成器有很多示例。

在您的情况下,我将对已编译的 MyResource 类使用反射。我会考虑使用 Velocity 来帮助模板类。在您的情况下,这可能有点矫枉过正,但是当您生成更多代码时,它可能会很有用。

于 2011-03-24T17:08:55.350 回答
1

您是否尝试过使用依赖注入在实例化时生成您的类?

DI 的基本示例

于 2011-03-24T17:10:15.563 回答