🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿
注解以结构化的方式为程序元素提供信息,这些信息能够被外部工具(编译器、解释器等)自动处理。
注解有许多用途,其中包括:
@AnnotationType
@AnnotationType(elementValuePairs)
注解的功能很强大,程序员很少需要定义自己的注解类型。Java语言规范中定义的3个注解类型,定义在java.lang包中,分别为
标准注解–@Override
public class Parent { public double calculate(double x, double y){ return x * y; } } public class Child extends Parent{ @Override public double calculate(double x, double y){ return x * y; } }
标准注解–@Deprecated
标记已被弃用的方法或类型,是为了警告其代码用户,不应该是使用或覆盖该方法,或不该使用或扩展该类型。 public class DeprecatedDemo{ @Deprecated public void badMethod(){ System.out.println("Deprecated); } public static void main(String[] args){ DeprecatedDemo dd = new DeprecatedDemo(); dd. badMethod();//编译文件时,编译器将发出警告 } }
标准注解@SuppressWarnings
SuppressWarnings的用法是传递String数组,包含需要阻止的警告,格式如下
SuppressWarnings(value={string-1,…, string-1})
eg:该注解可应用于类型、构造方法、方法、成员变量、参数以及局部变量
【例】SuppressWarnings注解阻止三种警告。
import java.io.Serializable; import java.util.*; @SuppressWarnings(value={"unchecked","serial","deprecation"}) public class SuppressWarningDemo { public static void main(String[] args) { Date d = new Date(); System.out.println(d.getDate()); List myList = new ArrayList(); //该语句仍然有警告 myList.add("one"); myList.add("two"); myList.add("three"); System.out.println(myList); } }
public @interface CustomAnnotation{ // 元素或属性声明 }
默认,所有注解类型扩展java.lang.annotation.Annotation接口。该接口定义返回class对象的anotationType()方法。
Class annotationType
该接口还定义了equals()方法、hashCode()方法和toString()方法
public @interface ClassInfo{ 可以像类和接口一样编译该注解类型,编译产生ClassInfo.class类文件 String created(); String author(); String lastModified(); int version(); }
在注解类型中声明的方法称为注解类型的元素, 它的声明类似于接口中的方法声明,没有方法体,但有返回类型。但只能是基本类型、String、枚举类型、其他注解类型等,不能声明参数
public @interface Version{ int major() default 1; int minor() default 0; }
Version注解类型可以用来标注类和接口,也可以供其他注解类型使用。
public @interface ClassInfo{ String created(); String author(); String lastModified(); Version version(); }
public @interface Preliminary { }
public @interface Copyright { String value(); }
@Copyright("flying dragon company")。
元注解是对注解进行标注的注解,在java.lang.annotation包中定义以下四类元注解类型
⚡️(1) Documented(标记注解类型。对注解类型声明进行标注,使类的实例包含在javadoc工具产生的文档中。)
(2)⚡️ Inherited(标注的注解类型任何实例都会继承。如标注一个类,则注解将会被这个标注类的子类继承)
⚡️(3) Retension(指明被标注的注解保留多长时间。注解值RetentionPolicy是枚举(SOURCE、CLASS、RUNTIME)的一个成员)
(4) ⚡️Target(用来指明那个程序元素可以利用被注解类型进行标注。值为java.lang.annotation.ElementType枚举的一个成员。)
博主用心写,读者点关注,互动传真情,知识不迷路。