Java 多注释
因为在同一个目标上不可能有重复的注释,所以我正在为它制定一个解决方案。我需要的可能是:Java 多注释,java,annotations,hierarchical-data,Java,Annotations,Hierarchical Data,因为在同一个目标上不可能有重复的注释,所以我正在为它制定一个解决方案。我需要的可能是: @Parent(sex="F", name="Alice") @Parent(sex="M", name="Bob") @Sibling(sex="M", name="Charlie") @Sibling(sex="M", name="Dan") @Sibling(sex="F", name="Eve") 我考虑过添加另一个注释@Relatives来包含它们,将值成员声明为一个相对注释数组 @Relativ
@Parent(sex="F", name="Alice")
@Parent(sex="M", name="Bob")
@Sibling(sex="M", name="Charlie")
@Sibling(sex="M", name="Dan")
@Sibling(sex="F", name="Eve")
我考虑过添加另一个注释@Relatives来包含它们,将值成员声明为一个相对注释数组
@Relatives({
@Parent(sex="F", name="Alice")
@Parent(sex="M", name="Bob")
@Sibling(sex="M", name="Charlie")
@Sibling(sex="M", name="Dan")
@Sibling(sex="F", name="Eve")
})
然而,我不能定义这样的数组,因为@Parent和@Sibling@接口不能扩展任何@Relative超类
除了定义两个不同的数组同级[]同级和父[]父之外,还有其他方法吗?但这会产生类似于
@Relatives(
parents={
@Parent(sex="F", name="Alice"),
@Parent(sex="M", name="Bob")
}
siblings={
@Sibling(sex="M", name="Charlie")
@Sibling(sex="M", name="Dan")
@Sibling(sex="F", name="Eve")
}
)
在1.8中,您有一种不成熟的可重复注释的方法,请注意,诀窍是您仍然需要声明您的@Parents和@brothers,但是:
@Parents
和@birds
)另请参见您使用的Java版本?1.6:(但我对更新的虚拟机也感兴趣,这对我来说似乎很好。)欢迎来到Java世界。顺便说一句,Java8允许存在相同类型的多个注释。您应该检查是否可以迁移到较新的版本。 public @interface Parents { Parent[] value(); } // this says: will be repeated inside a `Parents` nest @Repeatable(Parents.class) public @interface Parent { String name(); String sex() default "F"; }
@Parent(sex="F", name="Alice"),
@Parent(sex="M", name="Bob")
Child firstChild;