栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

『Java』注解(Annotation)学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

『Java』注解(Annotation)学习笔记

文章目录

前言内置注解

元注解

@Retention@documented@Target@Inherited 修饰代码的注解

@Override@Deprecated@SuppressWarnings Java7+新注解 自定义注解注解使用场景参考引用完

前言

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。注解就像一个标签,类、方法、变量、参数和包等都可以被标注,还支持标记注解的注解。被标注的对象在特定时候会被处理。

内置注解

Java内置了7个注解,3个在java.lang、4个在java.lang.Annotation,其中前三个是修饰代码的直接,后四个是修饰注解的注解,又被称为“元注解”

首先分析元注解,元注解是声明其他注解的重要部分

元注解

元注解是修饰注解的注解,主要是帮助定义一个注解,有四个元注解

@Retention:定义注注解怎么保存@documented:被修饰的注解会生成到javadoc中@Target:定义注解的适用对象@Inherited:被修饰的注解修饰的类的子类也会拥有该被修饰的注解(类似继承但不是继承) @Retention

注解的保存有三种方式

SOURCE:被编译器忽略CLASS:(默认)编入class文件RUNTIME:编入class文件并且在运行时能够通过反射获取

@documented

被修饰的注解会显示在javadoc中,javadoc生成使用javadoc xxx.java

@Target

@Target定义该注解能标记的元素,如果要定义支持多种元素,使用枚举类的花括号声明,默认为全体元素

package java.lang.annotation;

public enum ElementType {
    
    TYPE,

    
    FIELD,

    
    METHOD,

    
    PARAMETER,

    
    CONSTRUCTOR,

    
    LOCAL_VARIABLE,

    
    ANNOTATION_TYPE,

    
    PACKAGE,

    
    TYPE_PARAMETER,

    
    TYPE_USE
}

@Inherited

@Inherited修饰一个注解,拥有这个注解的类的子类也拥有这个注解,这里不是extends继承关系,注解不支持继承

首先定义一个注解

然后修饰一个类,子类继承该类,输出注解

修饰代码的注解

@Override:检查该方法是否是重写方法,如果父类、接口没有该方法就报编译错误。@Deprecated:标记为过时的方法,如果被调用抛警告@SuppressWarnings:声明一个警告类型,会忽略该警告 @Override

只能修饰方法,在编译的时候就会被丢弃,因此该注解不写也可以但是不符合规范。

一个方法被标记,就说明是重写了父类、接口的同名方法,如果父类没有该方法就会报错,相当于检测重写的方法是否正确、有没有正确重写。

@Deprecated

可以修饰很多元素:构造器、局部变量、方法、包、参数、类、接口

被@Deprecated标记的元素已经被弃用,如果强行调用会抛出警告,而该方法仍旧会正常运行。idea会在调用被标记的方法时添加一个删除线作为标记。

@SuppressWarnings

可以修饰很多元素,在编译时被丢弃

被标注的方法运行时遇到声明的警告就不会提示,声明的警告通过value赋值@SupressWarning(value="XXX")。

警告关键字参照下表:

还是借用上面的例子,让main忽略deprecation警告,删除线也自动消失了

Java7+新注解

@SafeVarargs - Java 7 ,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。@FunctionalInterface - Java 8 ,标识一个匿名函数或函数式接口。@Repeatable - Java 8,标识某注解可以在同一个声明上使用多次。 自定义注解

自定义注解如同定义接口,使用的是@interface

根据需要添加元注解

注解使用场景

最典型的场景就是JUnit,将被测试方法打上注解,在测试过程中根据注解读取、测试

参考引用

Java 注解(Annotation)

欢迎关注我的CSDN博客 :@Ho1aAs
版权属于:Ho1aAs
本文链接:https://blog.csdn.net/Xxy605/article/details/123525955
版权声明:本文为原创,转载时须注明出处及本声明

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号