本文共 1681 字,大约阅读时间需要 5 分钟。
一、介绍
Java Annotation是一种用于在源代码中注释或注明代码的元信息的机制。它可以附加到类、方法、字段或常量上,提供附加信息或指令。Annotations可以用于各种目的,如元数据存储、代码验证、配置信息等。二、Java提供的5个基本Annotation
1.@Override @override Annotation用于标记方法的实现类方法,表示该方法实现了某个接口中的方法。它通常应用于方法的签名前面。2.@Deprecated
@deprecated Annotation用于标记已过时的代码或功能,提醒开发者注意此代码可能已不再维护或已被替代。3.@SuppressWarnings
@SuppressWarnings Annotation用于禁止编译器产生特定的警告提示,常用于避免代码中冗长或不必要的警告。4.@SafeVarargs
@SafeVarargs Annotation用于标记变量,该变量可以被安全地传递给方法,避免堆污染警告。5.@FunctionalInterface
@FunctionalInterface Annotation用于标记一个接口,该接口可以被功能性语言(如Java 8中的Lambda表达式)实现。三、JDK的元Annotation
JDK提供了6个元Annotation,其中5个用于修饰其他Annotation的定义。这些元Annotation用于控制Annotation的行为和表现。1.@Retention
@Retention(RetentionPolicy.RUNTIME) Annotation用于指定Annotation的保留策略。默认情况下,Annotation在编译时被保留到源代码中,但如果没有指定RetentionPolicy,Annotation在运行时会被自动移除。2.@Target
@Target(ElementType.METHOD) Annotation用于指定Annotation可以应用的目标元素。例如,@Target(ElementType.METHOD) 表示Annotation只能应用在方法上。3.@Documented
@Documented Annotation用于指示Annotation应该被文档化,即在生成Javadoc时,会包含该Annotation的信息。4.@Inherited
@Inherited Annotation用于指示Annotation是否可以被子类继承。默认情况下,Annotation是可被继承的,如果不想子类继承,可以使用@Inherited注解。四、自定义Annotation
1.分类 自定义Annotation可以根据需求分类,常见的有标记Annotation、元数据Annotation、带默认值的Annotation等。2.标记Annotation
标记Annotation通常用于简单的标记作用,例如标记一个类、方法或字段具有某种属性。3.元数据Annotation
元数据Annotation用于存储与代码相关的元信息,如作者、日期、版本号等。4.带默认值的元数据Annotation
在定义元数据Annotation时,可以为成员变量定义默认值。使用时可以选择性地指定值,若不指定,默认值会被使用。五、提取Annotation信息
1.通过反射获取Annotation信息 可以通过反射API获取程序中Annotation的信息,并根据需要进行处理。2.获取元数据Annotation的元数据信息
对于定义了元数据Annotation的Annotation,可以通过反射获取其定义的元信息,如成员变量的值和类型。六、使用Annotation的示例
1.指定运行的方法 可以创建一个自定义的@Run注解,用于标记可以运行的方法。2.使用Annotation的示例
通过实际代码示例展示如何在不同位置使用Annotation,如类、字段、方法上,并解释其应用场景。转载地址:http://fscj.baihongyu.com/