您刚刚编写了注释。
特别是关于语句:这是因为注释和接口不能具有构造函数,因此这是为注释属性提供默认值的唯一方法。来自 Java 语言规范:default
注释类型元素可能具有为其指定的缺省值。这是通过在其(空)参数列表后面加上关键字和元素的默认值来完成的。default
默认值在读取注释时动态应用;默认值不会编译到批注中。因此,更改默认值会影响批注,即使在进行更改之前编译的类中也是如此(假设这些批注缺少缺省元素的显式值)。
不过,我注意到java.lang.annotation中没有一个注释使用默认值。
用法:您有一个带有属性 的批注。你可以把它放在一个这样的类上:@HelloWorld
sayHello
@HelloWorld(sayHello="Hi")
public class MyClass {
}
由于您有默认值,因此只需将
@HelloWorld
public class MyClass {
}
(请注意,该文档说,“在具有单个元素的注释中,应将元素命名为”;我相信这样做的唯一原因是你可以直接编写而不必命名参数。value
@HelloWorld("Hi")
如前所述,您的注释可用于任何有效的程序元素(包括方法和变量声明)。您可以使用@Target
注释对此进行更改。
最后,通过设置 RetentionPolicy
,您可以决定注释是应由编译器丢弃、由 VM 丢弃还是始终保留。
两个可能也很有趣的包:javax.annotation和javax.annotation.processing。下面是使用注释处理进行源代码分析的示例。