我创建了一组表示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);
}
}
我不想维护这些代理类的代码,只需要维护“资源类型”主类的代码。
我研究了内省,并发现了如何根据需要生成所述代理代码的提示。 问题是:是否可以在编译时生成代码,然后将其与库一起编译?也许我走错了路,我做了一些无趣的事情,但是;)
你怎么看? 谢谢!答案 0 :(得分:2)
这取决于您构建系统的内容,如果您的意思是javac
,那么我会拒绝,但如果您使用ant
或maven
则可以。
代码生成器有很多例子。
在你的情况下,我会在已编译的MyResource类上使用反射。我会考虑使用Velocity帮助模板化课程。在你的情况下它可能有点过分,但是当你生成更多代码时它可能是有用的。
答案 1 :(得分:1)
您是否尝试过使用依赖注入来实例化生成类?