java@Target属性值必须是类文本
我正在使用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 {};
}
我需要做什么才能让它工作
# 1 楼答案
您使用了错误的
@Target
。您打算使用java.lang.annotation.Target
,但导入了org.hibernate.annotations.Target
。将第一个导入更改为import java.lang.annotation.Target
,它应该可以正常工作