面试题答案
一键面试- @Retention:
- 作用:用于指定被它修饰的注解的保留策略,即注解保留到什么阶段。有三个取值:
RetentionPolicy.SOURCE
(注解仅保留在源文件,编译时被丢弃)、RetentionPolicy.CLASS
(注解保留到class文件,但运行时JVM不会保留,默认值)、RetentionPolicy.RUNTIME
(注解保留到运行时,运行时可以通过反射获取注解信息)。
- 作用:用于指定被它修饰的注解的保留策略,即注解保留到什么阶段。有三个取值:
- @Target:
- 作用:用于指定被它修饰的注解可以应用在哪些程序元素上,比如类、方法、字段等。取值有
ElementType.TYPE
(类、接口、枚举等类型)、ElementType.FIELD
(字段)、ElementType.METHOD
(方法)、ElementType.PARAMETER
(方法参数)、ElementType.CONSTRUCTOR
(构造函数)等。
- 作用:用于指定被它修饰的注解可以应用在哪些程序元素上,比如类、方法、字段等。取值有
- @Documented:
- 作用:表示该注解会被包含在JavaDoc中,当我们使用Javadoc工具生成文档时,被
@Documented
修饰的注解会被记录在文档中。
- 作用:表示该注解会被包含在JavaDoc中,当我们使用Javadoc工具生成文档时,被
- @Inherited:
- 作用:表示被它修饰的注解具有继承性。如果一个类使用了被
@Inherited
修饰的注解,那么它的子类也会自动拥有该注解。不过需要注意的是,它只对类上的注解有效,对方法、字段等注解无效。
- 作用:表示被它修饰的注解具有继承性。如果一个类使用了被