约束注释类型

时间:2018-11-05 12:33:39

标签: java

我创建了以下注释,将其用作Spring MVC验证的一部分。不幸的是,我收到以下异常:

  

约束注释类型必须具有至少一个元素   类型FIELD,METHOD,TYPE或ANNOTATION_TYPE作为目标。

ElementType.PARAMETER注释中是否禁止注释使用@Target

package com.jason.app.service.control.validator;


import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;

@Target(ElementType.PARAMETER)
//@Target({PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {ZipCodeValidator.class})
public @interface ZipCode {

    String message() default "Must be a valid 5-digit zip code";
    Class<?>[] groups() default { };
    Class<? extends Payload>[] payload() default { };

}

注释的用法示例:

public ResponseBody<List<Order>> getOrdersByZipCode(@Valid @ZipCode String zipCode) {
   // method body
}

Java版本是Java 8。

1 个答案:

答案 0 :(得分:2)

您正在定义课堂上的注释,因此请使用ElementType.TYPE

@Target(ElementType.TYPE)
  

类,接口(包括注释类型)或枚举声明