我正在使用Spring和Hibernate處理我的第一個項目,並且我想爲IP地址創建驗證器。@Target屬性值必須是類文字
要創建項目我使用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 {};
}
我需要做些什麼才能使它工作?
也許'FIELD.class'? – litelite
@litelite Nope,已經試過了。然後我收到一條消息'Unknown class:FIELD' –
['FIELD'](https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html#FIELD)是一個全球常數,而不是一類。 – litelite