括弧内に属性名を持たないカスタム Java アノテーションを行うにはどうすればよいですか?
これはいらない: @annotation_name(att=valor)
. サーブレットのようにしたいだけです。つまり:
@WebServlet("/main")
括弧内に属性名を持たないカスタム Java アノテーションを行うにはどうすればよいですか?
これはいらない: @annotation_name(att=valor)
. サーブレットのようにしたいだけです。つまり:
@WebServlet("/main")
という名前の属性で注釈を定義すると、value
属性名を省略できます。
@interface CustomAnnotation
{
String value();
}
これは次のように使用できます。
@CustomAnnotation("/main")
// ...
You specify an attribute named value:
public @interface MyAnnotation {
String value();
}
This doesn't have to be the only attribute if they have default values:
public @interface MyAnnotation {
String value();
int myInteger() default 0;
}
But if you want to explicitly assign a value to the attribute other than value, you then must explicitly assign value. That is to say:
@MyAnnotation("foo")
@MyAnnotation(value = "foo", myInteger = 1)
works
but
@MyAnnotatino("foo", myInteger = 1)
does not
注釈の公式ドキュメントの引用:
という名前の要素が 1 つしかない場合は
value
、次のように名前を省略できます。
@SuppressWarnings("unchecked")
void myMethod() { }
この注釈は次のように定義されます。
public @interface SuppressWarnings {
String[] value();
}
ドキュメントが完全に正しいわけではないことがわかるように、他の属性も許可されています (「 1つの要素のみ」) 。WebServlet
value