2017-05-17 40 views
0

私は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 {}; 
} 

これを行うには何が必要ですか?

+0

おそらく 'FIELD.class'ですか? – litelite

+0

@liteiteいいえ、すでにそれを試してみました。次に、「Unknown class:FIELD' –

+0

['FIELD'](https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html#FIELD)というメッセージが表示されます。グローバル定数、クラスではありません。 – litelite

答えて

1

間違った@Targetを使用しました。 java.lang.annotation.Targetを使用することを意味しましたが、org.hibernate.annotations.Targetをインポートしました。最初のインポートをimport java.lang.annotation.Targetに変更しても問題ありません。

+0

あなたはどこを見ているのか知っていると、人生は時には簡単になることがあります。ありがとう。 –

関連する問題