Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 Mvc_Annotations - Fatal编程技术网

Java自定义验证注释

Java自定义验证注释,java,spring-mvc,annotations,Java,Spring Mvc,Annotations,如何将课程变量传递给CustomValidation批注?我得到一个错误,说课程必须是一个枚举常量表达式 我还编写了一个自定义验证接口和验证器 注释属性在编译时必须是常量 您不能在那里使用变量 这里的关键字是跨字段验证 您有两个选择: 在类级别创建注释。在这里,您可以访问类的所有属性,验证应该很容易完成 或者在方法级别创建注释,该注释返回验证所需的所有字段 public class Student{ @NotNull private Course course= null

如何将课程变量传递给CustomValidation批注?我得到一个错误,说课程必须是一个枚举常量表达式


我还编写了一个自定义验证接口和验证器

注释属性在编译时必须是常量

您不能在那里使用变量

这里的关键字是
跨字段验证

您有两个选择:

  • 在类级别创建注释。在这里,您可以访问类的所有属性,验证应该很容易完成
  • 或者在方法级别创建注释,该注释返回验证所需的所有字段

        public class Student{
        @NotNull
        private Course course= null;
    
        @CustomValidation(enumCourse = course)
        private String details = null;
        }
    }
    
    @CustomAnnotations
    配对getCourseAndDetailForValidation(){
    返回对。当然,详细信息)
    }
    
    您可以更改返回类型以符合您的口味,它可以是列表、数组、包装器对象


  • 注释属性在编译时必须为常量

    您不能在那里使用变量

    这里的关键字是
    跨字段验证

    您有两个选择:

  • 在类级别创建注释。在这里,您可以访问类的所有属性,验证应该很容易完成
  • 或者在方法级别创建注释,该注释返回验证所需的所有字段

        public class Student{
        @NotNull
        private Course course= null;
    
        @CustomValidation(enumCourse = course)
        private String details = null;
        }
    }
    
    @CustomAnnotations
    配对getCourseAndDetailForValidation(){
    返回对。当然,详细信息)
    }
    
    您可以更改返回类型以符合您的口味,它可以是列表、数组、包装器对象


  • JLS第9.6.1节对此进行了规定。注释成员类型必须是以下类型之一:

    原始的 一串 等级 枚举 另一个注释 上面任意一个的数组


    课程必须是这些类型中的一种。

    JLS第9.6.1节对此进行了规定。注释成员类型必须是以下类型之一:

    原始的 一串 等级 枚举 另一个注释 上面任意一个的数组


    课程必须是这些类型中的一种。

    如何将此方法传递给@CustomValidation(enumCourse=Course)?您是否阅读了有关自定义验证的内容?使用
    @CustomAnnotation
    CustomAnnotationValidator.java
    类中对方法进行注释后,您就可以访问
    isValid()
    方法中的那些属性(
    course
    details
    ),并且可以实现您的逻辑。如何将此方法传递给@CustomValidation(enumCourse=course)?您读过关于自定义验证的内容吗?一旦您使用
    @CustomAnnotation
    对方法进行了注释,在
    CustomAnnotationValidator.java
    类中,您就可以访问
    isValid()
    方法中的那些属性(
    课程
    详细信息
    ),并且可以在那里实现您的逻辑