当前位置: 首页 > 面试题库 >

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

孔鸿宝
2023-03-14
问题内容

我正在寻找一种生成代码的解决方案。我已经用谷歌搜索,搜索了SO和一些博客,但没有找到一个好的解决方案。

我想在类上添加注释,并且在编译时,一些方法和属性会自动添加到类中。

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

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

例如 :

@Aliasable
public class MyClass {
//Some properties

// Contructor ...

// Some methods
}

编译后,我的课看起来像这样:

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

   // Contructor ...

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

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

编辑:
最后,我将我的第三个要求从“强制性”变成了“可选”,并选择了项目Lombok(与Maven和Eclipse轻松集成,使用它几乎不需要做任何工作)。


问题答案:

看看Lombok项目。当您编写时,它会按照您的要求生成html" target="_blank">代码:

public class MyClass {
  @Getter @Setter private String alias;
}

如果您需要的话,它还会做更多的事情。我知道您不要求任何外部工具,但您基本上会重新创建它。



 类似资料:
  • 问题内容: 我正在使用Java 6注释处理API。我遵循了以下出色的教程,以创建用于在构建时显示消息的注释处理器: http://kerebus.com/2011/02/using-java-6-processors-in- eclipse/ 但是,就我而言,我有一个简单的类: 如您所见,使用元注释“ Retention”在运行时使JVM可以使用上述注释。我在另一个类的源代码中使用此“标准”注释来

  • 我还想在自动生成getter和setter时生成注释 Android Studio: 我想要:

  • 我想用jQuery开发一个动态表单生成器,用户可以在其中构建自己的表单并更改表单名称、输入类型、大小等。我知道有一些很酷的拖放在线表单生成器,但我想开发一个非常简单的表单生成器。 我已经开始发展这一点,我面临着一些问题。 当用户单击标签(输入字段)时,它会使用jquery和edit and delete按钮动态创建一个输入字段。 下面的代码在div中附加输入字段,该字段现在是空的。 点击文本输入,

  • 我有一个json,它在一个领域模型中通过annotaion@SerializedName使用gson进行转换。 但有时在json中,有一个未知的键,我想将它编为字符串。 我在列表woList=gson.fromjson(parentArray,new typeToken>(){}.getType())上序列化了它;

  • 关于使用强化代码注释的名称和语法,我有一个问题。 简短、简短、非常简短的版本是:我正在寻找一个指南/手册,它将列出可用的代码内注释,并为它们的预期用途提供一个示例。专门用于从Fortify扫描结果中省略一组“SQL注入”和“SQL注入:持久性”问题。 TL;博士;细节: 强化版:19.1.0 平台:Java 8;Web App(Weblogic 12.2.1.4.0(12c));Redhat Un