我已经创建了一组表示 RESTful 资源的类,以及其他实际执行 HTTP 请求以检索和构建对象的辅助工具。 我的类(class)看起来像这样:
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);
}
}
我不想维护那些代理类的代码,而只维护“资源类型”的主类。
我调查了内省(introspection)并发现了有关如何按需生成上述代理代码的提示。 问题是:是否可以在编译时生成代码,然后将其与库一起编译?不过,也许我走错了路,我正在做一些无趣的事情;)
你怎么看? 谢谢!
最佳答案
这取决于你构建的系统是什么,如果你的意思是javac
,那么我会说不,但是如果你使用ant
或maven
那么你可以。
有很多代码生成器的例子。
在您的情况下,我将对已编译的 MyResource 类使用反射。我会考虑使用 Velocity 来帮助模板类。在您的情况下,这可能有点矫枉过正,但随着您生成更多代码,它可能会有用。
关于java - 使用 Java 在编译时生成代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422828/