通俗讲解Annotation注解(反射注解)

Java反射学习总结五(Annotation(注解)-基础篇) Annotation(注解)简介,如何自定义注解,使用反射调用注解 阅读详情
给编译器看的注释——Annotation

java.lang.annotation,接口Annotation。


Annotations提供一些本来不属于程序的数据,比如:一段代码的作者或者告诉编译器禁止一些特殊的错误。An annotation 对代码的执行没有什么影响。Annotations使用@annotation的形式应用于代码:类(class),属性(attribute),方法(method)等等。一个Annotation出现在上面提到的开始位置,而且一般只有一行,也可以包含有任意的参数。

建一个注解的话就新建一个Annotation, 使用注解的时候直接把注解名添加到要测试的方法上方就行了. 例如建一个注解:  新建一个类MyAnno,里面有一个方法,那么MyAnno类就成了一个注解

<span style="font-size:18px;">public @interface MyAnno{ 

 }  </span>

想在另一个类test中使用上面这个注解MyAnno的时候, 就这么用: 

<span style="font-size:18px;">class test{
      @MyAnno
       a(){
       }
 }</span>

上面只是简单的示范, 下面做个例子——我们自己定义一个注解DbInf, 当我们还没写DbInf类的时候, 当然会报错了,如下:



下面我们就来写DbInf类:注解类里面的属性看上去有些诡异——要带括号, 代码如下:



注意: 属性类型只能是基本类型, String, Class, 枚举, 注解,以及以上类型的一维数组, 不能是其他类型例如Date类型
这样上面的ConnectionUtil类就不会报错了.

我们还可以在username里写上default, 默认值是root,
(注:default——默认值)



这样,下面就可以省略username属性了, 如果不写上面的default, 下面也不写username的话, 就会报错;



现在再接着说文章一开头时的MyAnno类, 此时的MyAnno可以添加在任何方法, 变量和类的上方, 因为这时候的MyAnno没有被限制, 如果给它加限制,就不能到处使用了. 比如,这里使用ElementType.METHOD给它限制;

<span style="font-size:18px;">@Target(ElementType.METHOD) 
public @interface MyAnno{ 


 }</span>

那么, 注解MyAnno只能作用在类里面的的方法上,不能作用在变量和类上


ElementType.METHOD: 只能作用在方法上 
ElementType.FIELD: 只能作用在字段上
ElementType.TYPE: 只能作用在类上(或接口上)

常用以上3个范围,(实际ElementType变量一共有7种范围)

这3个可以同时使用, 如:  
<span style="font-size:18px;">@Target(ElementType.METHOD, ElementType.FIELD, ElementType.TYPE)
 public @interface MyAnno{ 
 }</span>

我们还可以反射出注解:



==========================================================================================


以下截图来自百度知道,关于Annotation反射注解的回答,我看标的简明扼要,就摘了过来。



Java的自定义注解——Annotation的使用 Annotation——自定义注解 Java中提供了 Annotation 功能,该功能可用于类,构造方法,成员变量,方法。参数等的声明中。该功能不会影响程序的运行,但是会对编译器警告等辅助工具产生影响。 定义 Annotation 类型 在定义 Annotation 类型时,需要用到用来定义接口的 interface 关键字,但需要在 interface 关键字前面加一个 “ @ ” 符号,即定... 阅读详情

相关推荐

java自定义注解和通过反射获取注解

自定义注解和通过反射获取注解

反射与注解(详细)

文章目录一、注解Annotation1、什么是注解2、内置注解3、元注解4、自定义注解二、反射机制**1、静态vs动态语言**动态语言静态语言2、java反射机制概述3、java反射机制研究及应用**反射机制提供的功能**优点缺点反射相关主要APIclass类class的常用方法获取class类的实例哪些类型有class对象?4、java内存分析static关键字类的加载过程类的加载和ClassLoader的理解什么时候会发生类的初始化?类加载器的作用双亲委派机制ClassLoader源码分析获取类加载器的

qq_43377329的博客 3244

SpringBoot3 + Vben5.0实战:从零搭建企业级管理后台(附完整代码)

本文详细介绍了如何从零开始,使用SpringBoot3与Vben5.0技术栈搭建现代化企业级管理后台。通过对比分析,阐述了该组合在开发效率、性能(如虚拟线程)和权限模型(RBAC)方面的优势,并提供了从项目初始化、核心功能开发到部署运维的完整实战指南,帮助开发者快速构建高性能、易维护的后台系统。

weixin_29306317的博客 171

反射与注解

文章目录一、反射二、注解 一、反射 1.1反射引入 • 编译时知道类或对象的具体信息,此时直接对类和对象进行操作即可,无需反射(reflection) • 如果编译不知道类或对象的具体信息,此时应该如何做呢?使用反射来实现。比如类的名称放在XML文件中,属性和属性值放在XML文件中,需要在运行时读取XML文件,动态获取类的信息 • 反射的应用场合 o 在编译时根本无法知道该对象或类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息 o 比如log4j,Servlet、SSM框架技术都用到了反射

wyy的博客 1113

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

机器视觉检测到底怎么做,经验分享

笔者做机器视觉检测已经有五六年了,也算是对机器视觉的检测技术有了一定的掌握。总的来说,基于机器视觉的检测技术主要包含三个部分:视觉采集模块、后台分析模块和动作决策模块。这几个分类,跟教科书上的有较大差异,很多同学觉得我在杜撰。笔者也不作反驳,因为这是笔者这些年工作经验的总结,自然区别于教科书。下面我们分开来讲这几个模块,同时会把笔者之前的论文做个推荐总结。 所有文章均可在博主的主页中找到,若无法找到,可以用搜索工具。博主的主页: https://blog.youkuaiyun.com/Aoulun 第..

Aoulun的博客 8676

【反射】注解和反射

不是程序本身,单可以对程序做出解释可以被其他程序读取(比如编译器)格式:“@注释名字”,还可以添加一些参数值,比如:@SuppressWaenings(value="unchecked")使用:package,class,methed,filed等上面,相当于给他们添加了额外的辅助信息,可通过反射实现访问//注解可以显示赋值,如果没有默认值,就必须给其赋值@MyAnnotation02(name = "老王",age = 1,id = 1)//注解有默认值,可不写参数。

菜鸟的学习笔记 1430

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4731

反射和注解

java.lang.Class 表示类的类型。一个Class类对象就代表了某个类的字节码对象。获取到这个类的字节码对象后该类中所有的内容都会被知道,然后就可以对这个类中的内容进行操作。Class类是Java 反射机制的起源和入口 ,用于获取与类相关的各种信息,提供了获取类信息的相关方法,Class类继承自Object类。java中提供的对反射支持的类都在java.lang.reflet包中。java.lang.reflect.Field 表示类中属性的属性对象。类中每一个属性对应一个属性对象。

lsplook的博客 358

KBS投稿全流程拆解:从模板准备到条件接收的实战指南

本文详细拆解了KBS期刊投稿的全流程,从模板准备、投稿系统操作到返修策略和条件接收。重点介绍了Cover Letter撰写技巧、Latex模板选择、审稿周期管理以及返修文件的系统准备方法,帮助研究者高效完成KBS投稿并提升接收概率。

weixin_26938645的博客 703

PyQt5开发应聘简历模版

该工具旨在帮助用户对Excel、CSV格式的数据进行快速导入、分析及可视化展示,支持折线图、柱状图、饼图等多种图表类型,提供数据筛选、排序、统计等功能,适用于企业数据分析人员日常工作。:一款用于本地文件管理的桌面应用,支持文件的新建、复制、移动、删除、重命名等基本操作,具备文件搜索、分类整理、批量操作及文件信息查看等功能,提升用户文件管理效率。:熟悉QSS(Qt Style Sheet)样式表,可对PyQt5界面进行个性化美化,包括控件颜色、字体、边框、布局等样式定制,提升应用视觉体验。

ybmzlqzj的博客 83

反射-注解

注解 什么是注解? 类似一个标签,给字段、方法、类、做一个标记 注解不仅仅是通过反射一种方式来使用,也可以使用APT在编译期处理 为什么要用注解? 使用它们修饰我们的代码, 可以让我们提高程序的开发效率。 以及对代码施以规范,让代码更加有可读性 元注解 定义注解的存活时间,注解运用的地方等 @Target 说明了Annotation所修饰的对象范围 TYPE:用于描述类、接口(包括注解类型) 或enum声明 METHOD:用于描述方法 CONSTRUCTOR:用于描述构造器 PACKAGE:用于描述包

weixin_42547039的博客 680

18、社区多能源管理与点对点能源交易优化调度策略研究

本文研究了社区多能源管理与点对点(P2P)能源交易的优化调度策略,构建了适用于单一社区多个产消者的P2P交易模型,以用户生产成本最小化为目标,设计了基于ADMM算法的迭代优化方法。通过电热联合调度与能源共享机制,结合光伏、热电联产(CHP)和储能系统(ESS),实现了用户侧能源的高效利用。仿真结果表明,引入P2P交易和CHP设备显著降低了用户能源成本,提高了电力自给率和天然气利用率,减少了对主电网的依赖。研究验证了ADMM算法在分布式优化中的有效性,为未来社区能源系统的智能化管理提供了理论支持和技术路径。

git9versioner的博客 70

定义和反射Annotation类(注解)

在写代码的过程中,我们经常会写到注释,以此来提醒代码中的点。但是,这些注释不会被查看,也不在整个代码之中,只能在源代码中进行查看。如果想要在代码运行后获取这些注释内容,这就用到了Annotation类了,也就是注解。定义Annotation类,需要用到关键字interface,为了区分接口类型,需要在前面加上“@”符号。@interface这个关键字也隐含着继承了java.lang.Annotation接口//权限修饰符 @interface 注解名称{}

weixin_74141222的博客 1200

ProcessingJoy —— 最简单的实时流体模拟【JAVA】

实现基于非常非常经典的 Paper ——Jos Stam 的Real-Time Fluid Dynamics for Games 代码和注释 float visc = 0.0f; float diff = 0.0f; int N = 250; int size = (N + 2) * (N + 2); float[] u = new float[size]; // 速度, 水平/竖直 float[] v = new float[size]; float[] u_prev = new fl...

ShaderJoy 的兴趣技术杂货铺 2815

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于注解(Annotation)的详细介绍

本文系统介绍了Java注解的核心概念与应用。主要内容包括:1. 注解基础:定义、元注解(@Target、@Retention等)及自定义注解方法;2. 实现原理:注解在字节码中的存储方式、JVM加载机制和反射读取时的动态代理实现;3. 生命周期:SOURCE/CLASS/RUNTIME三种保留策略的区别及典型应用场景;4. 发展历程:从编译期辅助到运行时反射,再到编译时代码生成的三代演进趋势。文章还详细解析了注解默认值存储、重复注解等高级特性,并提供了框架集成和性能优化的实践建议。通过底层机制剖析,揭示了注

weixin_50055999的博客 1390

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java:annotation注解的简单理解和总结

Java annotation注解Annotation1、Annotation的概述1.1、定义1.2、Annotation作用分类1.3、Annotation 架构2、Annotation的语法形式3、Annotation的分类3.1、基本注解3.2、元注解3.2.1、@Target3.2.2、@Retention3.2.3、@Documented3.2.4、@Inherited:4、自定义annotation4 .1、定义说明4.2、实例参考 注解Annotation 秒懂,Java 注解 (Annot

JMW1407的博客 2997

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android Annotation注解详解

文章目录Java注解元注解说明@Retention@Target通过反射获取注解信息方法使用注解方法的参数使用注解 Java注解 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。 Jav

赵彦军 2925

注解与反射

文章目录1.1、什么是注解1.2、内置注解1.3、元注解1.4、自定义注解1.5、反射1.6、Class类1.7、类加载内存分析1.8、什么时候会发生类初始化1.9、类加载器的作用1.10、获取运行时类的完整结构1.11、动态创建对象执行方法1.12、性能测试1.13、反射操作泛型1.14、反射操作注解 1.1、什么是注解 Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释(这一点和注释(conmment)没什么区别) 可以被其他程序(比

Mr.Rop的博客 743

注解(Annotation)和反射

注解和反射

qq_48512649的博客 1124

java注解与反射

java注释与反射

Imzhipo的博客 688

Java 注解 (Annotation)使用

文章目录简介注解的定义和使用元注解@Retention@Documented@Target@Inherited@Repeatable注解的属性Java 预置的注解@Deprecated@Override@SuppressWarnings@SafeVarargs@FunctionalInterface注解与反射类上的注解属性、方法上的注解注解的使用场景栗子注解应用实例JUnitButterKnife 简介 Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,初学者可

lemon_shark的博客 1171

Java基础之注解186 什么是Annotation187 自定义Annotation188反射读取注解信息与定义注解的注解

目录 1、认识Annotation 2、系统定义的Annotation 3、自定义Annotation 4、Retention和RetentionPolicy 5、反射与Annotation 6、@Documented注解 7、@Target注解 8、@Inherited注解 1、认识Annotation JDK1.5开始,Java增加了对元数据(即类的组成单元数据)的支持,也就是(Annota...

C_time的博客 333

注解和反射以及通过注解反射实现getBean()方法

1.反射(reflect) 反射机制可以认为是用来描述一组类 1.1Class 用来描述类本身 如何获取Class ​ 如下三种方式 ​ Class clazz = Class.forName(“包名.类名”); ​ Class clazz = 类名.class; ​ Class clazz = 对象.getClass();//Object类中的方法 Class中常用的方法 ​ int modifiers = clazz.getModifiers(); 获取类修饰符,用整数对应

qq_41899049的博客 1596

Java注解(Annotation)

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。 一、内置的注解 Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.an

codedot 246
上一篇: JSP和Servlet的5种跳转方式介绍
下一篇: Hibernate示例
xtfdc2
博客等级 码龄18年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值