它似乎在注释中具有特殊含义 - 它允许您在实例化注释时跳过参数名称。
@Foo(bar = "abc") // a normal instantiation of an annotation
@Foo("abc") // if bar were renamed 'value'
这在哪里记录? value
是否为关键字? See also
答案 0 :(得分:6)
不,value
不是Java中的关键字。如果只为注释指定了一个参数,并且该注释只有一个名为value
的元素,则在使用注释时可以省略名称value
。注释在这里解释:
http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html
并在JLS中的section 9.7中进行了记录:
答案 1 :(得分:5)
这不是常规关键字,因为它未列在section 3.9 of the JLS中。特别是,据我所知,您可以随意使用它作为标识符。
默认情况下,value
对注释值的使用在section 9.7中指定:
第三种注释形式,即单元素注释,是一种设计用于单元素注释类型的速记:
SingleElementAnnotation: @ TypeName ( ElementValue )
它是正常注释的简写:
@TypeName ( value = ElementValue )
答案 2 :(得分:3)
value
是注释数据所在的默认字段。 value
但不是java关键字(感谢提醒@gustafc)。
This is documented你可以期待它 - 在官方文件中说明:
在具有单个元素的注释中,该元素应命名为value
和
允许在元素名称为值的单元素注释中省略元素名称和等号(=)