括弧内に属性名のないカスタムJavaアノテーションをどのように実行できますか?
これは必要ありません:@annotation_name(att=valor)
。私はサーブレットのようにしたい、すなわち:
@WebServlet("/main")
value
という名前の属性を使用して注釈を定義すると、属性nameを省略できます。
@interface CustomAnnotation
{
String value();
}
これは次のように使用できます。
@CustomAnnotation("/main")
// ...
Valueという名前の属性を指定します。
public @interface MyAnnotation {
String value();
}
デフォルト値がある場合、これが唯一の属性である必要はありません。
public @interface MyAnnotation {
String value();
int myInteger() default 0;
}
ただし、値以外の属性に値を明示的に割り当てる場合は、値を明示的に割り当てる必要があります。つまり、
@MyAnnotation("foo")
@MyAnnotation(value = "foo", myInteger = 1)
働く
だが
@MyAnnotatino("foo", myInteger = 1)
ではない
引用 Annotations公式ドキュメント :
value
という名前の要素が1つしかない場合は、次のように名前を省略できます。
@SuppressWarnings("unchecked")
void myMethod() { }
これはこのアノテーションがどのように定義されるかです:
public @interface SuppressWarnings {
String[] value();
}
ドキュメントが完全に正しくないことを確認できるように、他の属性も許可されています( "1つの要素")。詳細は WebServlet
-ただし、value
という名前の扱いは異なります。