@Target属性值必须是类文字

Joh*_*eer 0 java spring hibernate

我正在使用Spring和Hibernate进行第一个项目,我想为IP地址创建一个验证器。

要创建项目,我使用IntelliJ。当我输入这样的代码时,@Target注释上出现错误Attribute value must be a class literal

我确实知道此批注必须执行的操作,但是如果我不断收到此错误,它将无法正常工作。

我在这里查看了有关自定义约束的文档,网址为http://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html_single/#validator-customconstraints-simple,我看了几个Stackoverflow页面,但是我无法解决此错误。

import org.hibernate.annotations.Target;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import static java.lang.annotation.ElementType.FIELD;


/**
 * Created by johan on 17-5-17.
 */
@Target({ FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = IpAddressValidator.class)
public @interface IpAddress{
    String message() default "{ipAddress.invalid}";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能使它正常工作?

lit*_*ite 6

你用错了@Target。您打算使用java.lang.annotation.Target但已导入org.hibernate.annotations.Target。将第一个导入更改为import java.lang.annotation.Target,它应该可以正常工作。

  • 如果您知道去哪里寻找,生活有时会如此简单。谢谢。 (2认同)