gpt4 book ai didi

java - java - 如何在Java中构建时使用注释动态生成代码?

转载 作者:IT老高 更新时间:2023-10-28 20:34:34 29 4
gpt4 key购买 nike

我正在寻找生成代码的解决方案。我在 SO 和一些博客上搜索过、搜索过,但没有找到好的解决方案。

我想在我的类上放一个注解,在编译时,一些方法和属性会自动添加到类中。

我正在寻找的解决方案的关键点:

  • 生成的代码可自定义(强制)
  • 无需调用像 apt 这样的外部工具(强制)
  • 仅 JDK,无第三方框架(强制可选)
  • 可自定义注释名称(可选)

例如:

@Aliasable
public class MyClass {
//Some properties

// Contructor ...

// Some methods
}

我的类(class)在编译后会是这样的:

public class MyClass {
//Some properties
private String alias;

// Contructor ...

// Some methods
public String getAlias() {
return alias;
}

public void setAlias(String alias) {
this.alias=alias;
}
}

编辑:
最后,我把我的第三个要求从 MANDATORY 变成了 OPTIONAL 并选择了 project Lombok (与 Maven 和 Eclipse 轻松集成,几乎不需要做任何工作 使用它)。

最佳答案

annotation processing tool自 1.6 版起已集成在 javac 中,为 part of the JDK .所以在使用 Pluggable Annotation API 时不需要外部工具。您可以使用 Mirror API 分析自定义注释或方法/参数/字段/类声明来生成任何代码.

注解处理器 API 说您不应该更改现有的类。相反,您应该生成现有类的子类并在这些子类上创建扩展方法。

似乎无论如何都可以更改类(例如,通过使用字节码操作库),尽管这与规范相反,并且可能导致其他注释处理器出现问题,并且可能无法以相同的方式与所有编译器一起使用。

关于java - java - 如何在Java中构建时使用注释动态生成代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7362659/

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