Java 注解

Java注解 Java注解 JDK1.5之后的新特性 1、概念 注解:说明程序的,给计算机看。 注释:用文字描述程序的,给程序员看的。 注解也叫元数据,是一种代码级别的说明,与类、接口、枚举在同一层次。 它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、解释。 2、按作用分类 (1)编写文档:通过代码里标识的注解生成文档。如:生成doc文档。 (2)代码分析:通过代码里标识的注解对代码进行分析。如:通过反射。 (3)编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查。如: 阅读详情

注解简介

◆ Annotation是从JDK5.0开始引入的新技术.
◆ Annotation的作用:
  ➢不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别)
  ➢可以被其他程序(比如:编译器等)读取.
◆Annotation的格式:
  ➢注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如:
     @SuppressWarnings(value="unchecked").
◆Annotation在哪里使用?
  ➢可以附加在package , class , method , field等上面,相当于给他们添加了额外的辅助信息,
     我们可以通过反射机制编程实现对这些元数据的访问。

JDK内置注解

➢@Overide :定义在java.lang.Override中,此注释只适用于修辞方法+表示一个方法声明打算
重写超类中的另一个方法声明
.
➢@Deprecated :定义在java.lang.Deprecated中,此注释可以用于修辞方法,属性,类,表示不
鼓励程序员使用这样的元素
[ ,通常是因为它很危险或者存在更好的选择,)
➢@SuppressWarnings :定义在java.lang.SuppressWarnings中,用来抑制编译时的警告信息。与前两个注释有所不同,你需要添加一个参数才能正确使用,这些参数都是已经定义好了的,
我们选择性的使用就好了:

  • @SuppressWarnings("all")
  • @SuppressWarnings("unchecked")
  • @SuppressWarnings(value={"unchecked","deprecation"})

等等。

元注解

◆ 元注解的作用就是负责注解其他注解, Java定义了4个标准的meta-annotation类型,他们被用来
为其他annotation类型提供说明。
◆ 这些类型和它们所支持的类在java.lang .annotation包中可以找到.( @Target , @Retention,
@Documented , @Inherited )
➢@Target :(用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
➢@Retention :表示需要在什么级别保存该注释信息,用于描述注解的生命周期
➢ (SOURCE < CLASS < RUNTIME)
➢@Document:说明该注解将被包含在javadoc中
➢@Inherited: 说明子类可以继承父类中的该注解

1. @Target

如上所述,用于描述注解的使用范围,表明使用范围时需要在value参数中输入对应的枚举类型,即声明我们的注解可以放置在什么地方,如:

@Target(value = {ElementType.METHOD})
public @interface MyAnnotation {
}

此时表示注解可以用于修饰方法,例如:

public class Client {
    @MyAnnotation	<--
    public void test() {
    }
}

@Target注解源码:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}

@Target所枚举的类型有:

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,
    /** Field declaration (includes enum constants) */
    FIELD,
    /** Method declaration */
    METHOD,
    /** Formal parameter declaration */
    PARAMETER,
    /** Constructor declaration */
    CONSTRUCTOR,
    /** Local variable declaration */
    LOCAL_VARIABLE,
    /** Annotation type declaration */
    ANNOTATION_TYPE,
    /** Package declaration */
    PACKAGE,
    // 1.8
    /**
     * Type parameter declaration
     */
    TYPE_PARAMETER,
    /**
     * Use of a type
     */
    TYPE_USE,
    // 1.9
    /**
     * Module declaration.
     */
    MODULE
}

2. @Retention

@Retention源码:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    /**
     * Returns the retention policy.
     * @return the retention policy
     */
    RetentionPolicy value();
}

该注解用于注明该注解可以在什么情况下有效,可填入的参数为RetentionPolicy的枚举类型,具体有:

public enum RetentionPolicy {
	// 源码时有效
    SOURCE,
    // 编译成class文件之后仍有效
    CLASS,
    // 运行时有效
    RUNTIME
}

遍写自定义注解时一般标RUNTIME,即运行时有效。

使用:

@Target(value = {ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)  <--
public @interface MyAnnotation {
}

有效范围:RUNTIME > CLASS > SOURCE

其余两个注解比较简单,再次不再赘述。

自定义注解

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

➢分析:

  • @ interface用来声明一个注解, 格式: public @interface 注解名{定义内容}
  • 其中的每一个方法实际上是声明了一个配置参数
  • 方法的名称就是参数的名称.
  • 方法前的类型就是参数的类型(只能是基本类型,Class , String , enum )
  • 可以通过default来声明参数的默认值
  • 如果只有一个参数成员,一般参数名为value
  • 注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值

编写一个自定义注解:

@Target(value = {ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // 注解的参数:参数类型 + 参数名()
    String name() default "";
    int age() default 18;
    int id() default -1;
    String[] schools() default {"北京大学","清华大学"};
}

tips: 如果参数没有默认值,则必须给注解对应参数赋值

如果注解的参数名为value,则可以在赋值时不需要写出参数名,即:

@MyAnnotation(value = "123") → @MyAnnotation("123")

其实注解只是为程序提供一些修饰某部分的额外信息,并不能为程序提供直接的作用,即相当于在生产线上为产品标注上一些特定的信息,方便生产线后续的加工和生产。

因此要发挥注解的作用,我们一般需要在运行时使用反射来获取注解所标注的信息,进行一些额外的处理等等。

Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory的理论简述和python仿真实现(附源码) 经典论文Flocking for Multi-Agent Dynamic Systems: Algorithms and Theory的学习与编程仿真,提供源码 阅读详情

相关推荐

quartus 13.1常见报错解决方法

在使用quartus中会遇到很多由于安装或设置不规范造成的错误。我就目前我遇到的一些错误以及我的解决方法分享给大家,这个文章将会持续更新,如果读者有遇到软件中错误无法解决的问题,也欢迎在评论区留言。 一、编译出现lience错误 在对设计的电路编译时,系统在程序运行3秒内即结束并报错,大概意思为现有的证书不支持编译。这个常见问题源自破解不成功,这里读者很有可能犯的错误是在使用破解器的时候没有区分x86(即32-bit)和x64软件破解器对应的文件夹。 如图所示有两种破解器,分别对应32位和64位的软件,大部

肥宅的博客 3万+

JAVA注解

本文将向你介绍J2SE5.0中的新特性之一:注解。本文将从什么是注解;J2SE5.0中预定义的注解;如何自定义注解;如何对注解进行注解以及如何在程序中读取注解5个方面进行讨论。     一、什么是注解     说起注解,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE

rj042的专栏 1万+

PVE 8.0 保姆级换源教程:从Debian到LXC仓库,一次搞定国内镜像(附弹窗去除)

本文提供PVE 8.0保姆级换源教程,涵盖从Debian基础源到LXC仓库的国内镜像配置,并附赠去除订阅弹窗的实用技巧。通过详细步骤和命令示例,帮助用户快速优化ProxmoxVE环境,提升下载速度并消除干扰提示,适用于虚拟化平台的高效管理。

weixin_33282146的博客 412

java注解怎么写_java注解

写在前面现在的java主流框架中,注解无处不在,因此我们完全有必要搞明白注解到底是什么。如何理解注解,它到底是怎么起作用的。注解的定义java是这样定义注解的:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。什么又是元数据的呢?说白了就是描述数据的数据,既然注解被称为元数据,具有描述作用,那么我们是不是可以把注解理...

weixin_42476912的博客 2245

(超详细)Qt入门和配置Visual Studio的Qt环境

内容写了Qt入门,创建并编写第一个Qt程序,以及配置VS编写Qt程序的环境。(超级详细)

LY549826LY549264的博客 7678

kettle写doris操作

文件在目录:doris-master\extension\kettle\assemblies\plugin\target\doris-stream-loader-plugins-9.4.0.0-343.zip。官方提供了doris stream load插件,下载源码编译后放到kettle的插件目录即可使用。地址:https://github.com/apache/doris.git。注意:需要doris插件或者kettle转换生成模板的私聊博主。使用PDmaner同步业务库生成建表语句。

weixin_44449054的博客 3029

Java注解以及自定义注解

Java注解以及自定义注解

YIYIYI 1968

大一Python之循环解决实际问题

pythin之循环解决实际问题

weixin_66263546的博客 2287

java 注解 entity_Java 注解

一. 简介注解是java5的新特性。注解可以看做一种注释或者元数据(MetaData),可以把它插入到我们的java代码中,用来描述我们的java类,从而影响java类的行为。二. 基本语法1. 注解的使用形式:一个java注解由一个@符后面跟一个字符串构成,类似于这样:@Entityjava注解中一般包含一些元素,这些元素类似于属性或者参数,可以用来设置值,比如我们有一个包含两个元素的@Enti...

weixin_42384743的博客 2348

Android 15.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)

在15.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品开发需要要求默认授予app运行时权限,不需要用户默认授予运行时弹窗,所以需要在首次开机默认授予所有app运行时权限

安卓兼职framework和app工程师的博客 1204

计算机视觉入门:从像素到理解的旅程

计算机视觉入门:从像素到理解的旅程,计算机视觉是人工智能领域的核心方向之一,旨在让计算机具备理解和解释视觉信息的能力。本文以系统化的知识框架,结合 Python 代码与经典案例,带您从像素级操作逐步掌握计算机视觉核心技术。涵盖图像处理、特征工程、传统机器学习到深度学习模型,助您构建从基础到进阶的完整能力体系。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

Java注解与元注解

使用@interface关键字来定义注解,注解中的方法称为注解元素,注解元素可以有默认值。// 定义一个简单的注解元注解是用于注解其他注解的注解,它们可以控制注解的使用范围、生命周期等。Java 提供了几个元注解,常用的有@Retention@Target和@Inherited。

dsq_MaDing的博客 683

【Unity实战100例】Unity循环UI界面切换卡片功能

功能包括:可以设置半径,高度,速度,元素数量用户可以根据自己的实际需求接入 制作思路:创建每个元素对应的虚拟点,通过旋转管理这些虚拟点,然后把旋转信息和位置信息同步给实际的元素

纯技术流日常开发商业开发记录总结等 7717

java 注解 数组_Java注解,就是那么简单

深入理解注解1、基本介绍2 内置注解2.1@Deprecated注解2.2@Override注解2.3@SuppressWarnings注解3、元注解简介3.1@Target3.2@Rentention3.3@Documented3.4@Inherited4、自定义注解5、获取注解中的参数值5.1参数值是基本类型5.2参数值是对象1、基本介绍基本概念:注解,顾名思义,就是对某一事物进行添...

weixin_34017915的博客 4110

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java注解的使用及常用注解

java注解的使用及常用注解

qq_42003527的博客 2342

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java 注解 id_java注解

java注解:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。注解理解的前提:我认为注解就是标签它是在 Java SE 5.0 版本中开始引入的概念,就如同java中的 class和interface说到这个就不得不说注解中的基础元注解元注解: 元注解是可以...

weixin_42547335的博客 1297

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java 注解和 重复注解

1、什么是java注解 Annotation(注解)是JDK5.0及以后版本引入的一个特性。注解是java的一个新的类型(与接口很相似),它与类、接口、枚举是在同一个层次,它们都称作为java的一个类型(TYPE)。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。它的作用非常的多,例如:进行编译检查、生成说明文档、代码分析等。 2.jdk提供的3个基本注解

u012964143的专栏 3503

java 注解 default_java注解

元注解:元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:1.@Target,2.@Retention,3.@Documented,4.@Inherited这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和...

weixin_39889329的博客 1858

java 过期注解_java之——注解

注解(Annoation)是什么?Annoation(注解)是Java提供的一种对元程序中元素关联信息和元数据(metadata)的途径和方法。Annotation是一个接口,程序可以通过反射来获取指定元素的Annotation对象,然后通过该Annotation对象来获取注解中的元数据信息。注解它可以增强我们的java代码,同时利用反射技术可以扩充实现很多功能。它们被广泛应用于三大框架底层。传统...

weixin_36488064的博客 2791

Java注解——元注解

写在注解定义上的注解叫元注解(注解是给程序提供信息,写在注解上的注解是给注解提供信息,给信息提供信息的叫元信息)。

qq_58461006的博客 1744
上一篇: Java8 Stream API的使用
下一篇: Java 反射(一)反射简介、原理和应用场景
CodeReaper
博客等级 码龄7年 60粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值