CodeModel - 如何使用枚举值定义注释?

时间:2011-11-28 10:22:23

标签: java annotations code-generation sun-codemodel

似乎java代码生成器框架 CodeModel 无法创建仅包含枚举值而没有名称的注释 - 遗憾的是这是一种非常常见的模式(JPA例如使用):

  @Temporal(TemporalType.TIMESTAMP)
  private Date createDate;

API documentation only states “TODO如何将枚举添加到注释”

问题:
有没有办法解决这个限制?

2 个答案:

答案 0 :(得分:1)

我说评论已经过时了。 param(String name, Enum<?> value)上的方法JAnnotationUse可以正常使用。

修改:代码如下所示:

field.annotate(Temporal.class).param("value", TemporalType.TIMESTAMP)

请注意

@Temporal(TemporalType.TIMESTAMP)

只是写作的简称

@Temporal(value=TemporalType.TIMESTAMP)

当注释仅包含单个参数时,可以使用此简短形式。

答案 1 :(得分:1)

注释参数“没有名称”实际上只是名为“value”的默认参数的简写,所以它们是等价的:

@Temporal(TemporalType.TIMESTAMP)

@Temporal(value=TemporalType.TIMESTAMP)