2020-09-23 注解的定义和使用

本文详细介绍了Java注解的定义、使用位置、作用、预定义注解以及自定义注解的创建和使用方法,包括元注解@Target、@Retention、@Inherited和@Documented的解释,同时阐述了注解携带信息的限制和如何描述注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Annotation 注解

1.注解的写法

@XXX[(一些信息)]

2.注解放置在哪里

类的上面,属性的上面,方法的上面,构造方法的上面,参数的前面,

3.注解的作用

用来充当注释的作用(仅仅是一个文字的说明)

用来做代码的检测(验证)

可以携带一些信息

4.Java中有一些人家写好的注解供我们使用

@Override 用来做代码检测,检测此方法是否是一个重写
@Deprecated 用来说明方法是废弃的
@SuppressWarnings("") ,括号内的参数正常是一个数组,如果数组内的元素只有一个长度,可以省略数组的大括号
@SuppressWarnings(“unused”),变量定义后未被使用
@SuppressWarnings(“serial”),类实现了序列化接口,不添加序列化ID号
@SuppressWarnings(“rawtypes”),集合没有定义泛型
@SuppressWarnings(“deprecation”),方法已经废弃
@SuppressWarnings(“unchecked”),出现泛型问题时,可以不检测
产生多个问题时,可以写成数组的形式,如下:
@SuppressWarnings({“unused”,“unchecked”})
可以简写为
@SuppressWarnings(“all”)

5.注解中可以携带信息,也可以不携带信息,信息的类型只能是如下几个

基本数据类型

String类型

枚举类型enum

注解类型@

数组类型,数组的内部元素需要是上面的四个

6.如何描述注解

1.注解上面需要用元注解进行描述,通常需要描述的是注解写在哪里和注解的作用域

四个元注解如下
@Target:描述当前注解可以放置在哪里写
属性 ElementType.FIELD 方法 ElementType.METHOD 构造方法,ElementType.CONSTRUCTOR
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention:描述这个注解存在什么作用域中
RetentionPolicy.SOURCE,源代码文件中
RetentionPolicy.CLASS,字节码文件中
RetentionPolicy.RUNTIME,内存执行中
@Retention(RetentionPolicy.RUNTIME)
描述当前这个注解是否能被子类对象继承
@Inherited
描述当前这个注解是否能被文档所记录
@Documented

注解里只能写 公有静态final的属性 和 公有的抽象的有返回值的方法

通常会省略固定的修饰符 ,如public,static,final,abstract
方法返回值只能是上面列举的几个
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {

    String name  = "张三";
    public static final String name1  = "张三";

    String value();
    public abstract  String mess1();

}

7.如何使用注解

按照定义注解是的要求,将注解放置在应该放置的位置

使用注解,注解里有几个方法,就要传递几个参数
注解会将参数传递给使用的人
@MyAnno(mess="")
@MyAnno(value="",mess1="")
注解中着只有一个方法,且方法的名称是value时,可以简写为@MyAnno(""),否则必须写方法名
    //@MyAnno("")
    public void test() {
        
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值