2017-09-28 12 views
0

クラス内のJavaアノテーションの使用回数を制限する方法はありますか?私が欲しいものJavaアノテーションの使用を制限する

@Target(ElementType.FIELD) 
@Inherited 
public @interface MyAnnotation { 
    // 
} 

public class MyClass{ 

    @MyAnnotation 
    private Object obj1; 

    private Object obj2; 
} 

私がないようにしたいもの:

public class MyClass{ 

    @MyAnnotation 
    private Object obj1; 

    @MyAnnotation //should throw an error because already used on another field 
    private Object obj2; 
} 

ありがとうございました。

+1

1つの注釈がクラスのすべてのメンバーに影響するようにするには、クラスレベルで注釈を作成してください。 – blafasel

+0

私はこのアノテーションを持つフィールドにアクセスしたいからです。 –

答えて

-1

アノテーションに@Target(ElementType.FIELD)が含まれていると、アノテーションが適用される可能性のあるフィールドの数をコンパイル時にチェックすることはできません。もちろん、処理中にチェックすることはできますが、コンパイル時のチェックではありません。

+0

あなたは@Targetアノテーションを削除するかどうか確認できますか? 今のところ私はプロセス中にはいをチェックしています。 –

+0

@ L.Andiaいいえ。注釈をフィールドに適用できるようにする場合は、任意の数のフィールドに適用できます。 – lexicore

+0

ありがとうございます。だからあなたの答えはコンパイル時には不可能だと思います。 –

関連する問題