私は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
@liteiteいいえ、すでにそれを試してみました。次に、「Unknown class:FIELD' –
['FIELD'](https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html#FIELD)というメッセージが表示されます。グローバル定数、クラスではありません。 – litelite