gpt4 book ai didi

java - 使用 Java 在编译时生成代码?

转载 作者:行者123 更新时间:2023-11-29 06:15:03 25 4
gpt4 key购买 nike

我已经创建了一组表示 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,那么我会说不,但是如果你使用antmaven 那么你可以。

有很多代码生成器的例子。

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

关于java - 使用 Java 在编译时生成代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com