JavaSE基础——注解

一、注解概述

1、 注解Annotation是从JDK5.0开始的新技术,注解信息在源码、编译期、运行期都存在,可以获取。

2、注解的作用:
   ● Annotation不是程序,而是用来解释程序的。
   ●Annocation可以被其他程序读取。

3、Annotation的格式:

@注解名(参数)
例如:@SuppressWarning(value = "unchecked")

4、注解在何处使用

   Annotation 可以加在packet、class、method、field 等上面,相当于添加的额外的复制信息,之后可以通过反射机制对这些元数据进行访问。

二、内置注解

1、@Override: 该注解只能应用在方法上面,用来声明当前的方法要重写并覆盖超类中的方法。

1、@Deprecated: 该注释可以来修饰类、方法、属性,表示已经过时,不推荐程序员使用这样的元素。

2、@SuppressWarnings: 用来抑制编译时的警告信息。这个注解需要加参数才能使用,参数已经定义好了。

@SuppressWarning("all")
@SuppressWarning("unchecked")
@SuppressWarning(value={"unchecked","deprecation"})
......

代码演示:

public class AnnotationDemo {

    @Deprecated//表示方法已经过时,不推荐使用该方法了
    public static void run() {
        System.out.println(Thread.currentThread().getName() + "Running");
    }
    
    @Override//表示重写超类中的方法
    public String toString() {
        return super.toString();
    }
    
    @SuppressWarnings("all")
    public void show(){
        System.out.println("show");
    }
}

三、元注解

1、作用: 负责注解其他注解,对其他的注解进行说明。

2、分类

@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE}): 用来声明当前注解能定义在哪里。
@Retention({SOURCE,RUNTIME,CLASS}): 用来声明当前注解的生命周期。
@Document: 表示注解可以生成Javadoc信息
@Inherited: 允许子类继承父类的注解

四、自定义注解

格式:

@Interface 注解名  自动继承Java.lang.annotation.Annotation 接口

代码演示:

import java.lang.annotation.*;

public class Test1 {
    @MyInnotation(value = {"zhangsan","lisi"},name = "ZH",id = 011,age = 21)
    public static void main(String[] args) {

    }
}
@Target(value = {ElementType.METHOD})//注解用在什么地方
@Retention(value = RetentionPolicy.RUNTIME)//注解的声明周期
@Documented //可以生成Javadoc信息
@Inherited //允许子类可以继承父类的注解
@interface MyInnotation {
    //注解的参数
    String[] value();
    String name() default "hang";
    int id() default 001;
    int age() default 20;
}
发布了58 篇原创文章 · 获赞 7 · 访问量 2283

猜你喜欢

转载自blog.csdn.net/weixin_42492089/article/details/103449546