Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中强制带注释的字段包含带注释的类_Java_Spring_Annotations - Fatal编程技术网

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

在java中强制带注释的字段包含带注释的类,java,spring,annotations,Java,Spring,Annotations,这正好相反 如果类字段中的任何一个用@NonEditable注释;那么,如何强制该类使用@ContainsNonEditableFields进行注释 这可以通过AspectJ实现 但关键思想是使用AspectJs函数,在一个没有@ContainsNonEditableFields注释的类中,为每个带有@NonEditable注释的字段声明一个错误 (不幸的是,我无法提供一个现成的工作示例,但我认为如果您提出正确的问题,stackoverflow的某人可以帮助您) 这段代码只是一种涂鸦,它不工作a

这正好相反


如果类字段中的任何一个用@NonEditable注释;那么,如何强制该类使用@ContainsNonEditableFields进行注释

这可以通过AspectJ实现

但关键思想是使用AspectJs函数,在一个没有
@ContainsNonEditableFields
注释的类中,为每个带有
@NonEditable
注释的字段声明一个错误

(不幸的是,我无法提供一个现成的工作示例,但我认为如果您提出正确的问题,stackoverflow的某人可以帮助您)


这段代码只是一种涂鸦,它不工作aspectj语法

这可以通过AspectJ实现

但关键思想是使用AspectJs函数,在一个没有
@ContainsNonEditableFields
注释的类中,为每个带有
@NonEditable
注释的字段声明一个错误

(不幸的是,我无法提供一个现成的工作示例,但我认为如果您提出正确的问题,stackoverflow的某人可以帮助您)


这段代码只是一种涂鸦,它不能使用aspectj语法

在编译时还是在运行时?你试过什么?@JimGarrison编译时。目前我不知道如何在注释之间建立这种交叉关系:(@JimGarrison Jim你能在这里帮助我吗?。在编译时还是在运行时?你尝试了什么?@JimGarrison编译时。目前我不知道如何在注释之间建立这种交叉关系:(@JimGarrison Jim你能帮我一下吗。。?
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ContainsNonEditableFields {}

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NonEditable {}
declare error : @annotation(NonEditable) &&
                   ! @annotation(ContainsNonEditableFields)      
                : "the class need ContainsNonEditableFields annotation";