Java注解介绍,内置注解,元注解,自定义注解介绍

https://blog.csdn.net/weixin_43765186/article/details/121537305
本文是自己学习Java注解时所做的笔记,参考了b站【狂神说Java】注解和反射视频。
链接:视频地址

反射相关知识可以看另一篇博客,链接:点击跳转

一、什么是注解

注解,Annotation是JDK5.0引入的新技术。

Annotation不是程序本身,可以对程序作出解释,可以被其他程序(如编译器)读取;

其写法是“@注释名”,比如重写的注解 @Override

二、内置注解

@Override: 此注释只适用于修辞方法,表示一个方法声明打算重写超类中的另一个方法声明。

image-20211121172900494

@Deprecated:此注释可以用于修辞方法,属性,类。不鼓励使用,因为存在危险。

image-20211121173258894

@SuppressWarnings:用来抑制编译时的警告信息。

image-20211121173355464

三、元注解

元注解的作用就是负责注解其他注解。

@Target:用于描述注解的使用范围。

@Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期。

@Document:说明该注解将被宝行在javadoc中。

@Inherited:说明子类可以继承父类中的该注解。

import java.lang.annotation.*;

/**
 * @author zyy
 * @create 2021-11-21 17:44
 *
 * 测试:元注解
 */
@MyAnnotation
public class Test02 {
    public void test(){
        
    }
}

//定义一个注解
//Target 表示我们的注解可以使用在哪些地方
@Target(value = {ElementType.METHOD,ElementType.TYPE})

//Retention 表示我们的注解在什么地方有效
//runtime>class>source
@Retention(value = RetentionPolicy.RUNTIME)

//Documented 表示是否将我们的注解生成在JAVAdoc中
@Documented

//Inherited 表示子类可以继承父类的注解
@Inherited
@interface MyAnnotation{

}

四、自定义注解

使用@Interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

@Interface用来声明一个注解,格式:public @Interface 注解名 { 定义内容 }

import java.lang.annotation.*;

/**
 * @author zyy
 * @create 2021-11-21 17:56
 *
 * 测试:自定义注解
 */
public class Test03 {
    //注解可以显示的赋值,如果没有默认值,我们就必须给注解赋值
    @MyAnnotation2(name="123",age=19,shcools = {"QFNU"})
    public void test(){}
}

@Target(value = {ElementType.METHOD,ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //注解参数:参数类型+参数名();
    String name();
    int age() default 0;
    int id() default -1; //如果默认值为-1,代表不存在

    String[] shcools();
}

反射相关知识可以看另一篇博客,链接:点击跳转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值