强制带注释的字段在java中包含带注释的类

时间:2013-11-26 16:54:49

标签: java spring annotations

这与Force annotated Class to contain annotated Field正好相反。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ContainsNonEditableFields {}

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NonEditable {}

如果任何类字段用@NonEditable注释;那么如何强制该类应该用@ContainsNonEditableFields注释?

1 个答案:

答案 0 :(得分:1)

这可以通过AspectJ完成。

但关键的想法是使用AspectJs declare warning or errors函数,为没有@NonEditable注释的类中的@ContainsNonEditableFields注释声明每个字段的错误。

(遗憾的是我无法提供开箱即用的工作示例,但是如果你提出正确的问题,那么stackoverflow的某些人可以帮助你)

declare error : @annotation(NonEditable) &&
                   ! @annotation(ContainsNonEditableFields)      
                : "the class need ContainsNonEditableFields annotation";

这段代码只是某种涂鸦,它不是workj语法!

相关问题