注解的使用

注解的定义和使用 注解(Annotation):不是程序本身,可以对程序作出解释和comment类似,一般以@开头,可以使用在package、class、method、field上面,作为辅助信息,可以通过反射获得注解反射获取注解时,返回的是Java运行时生成的动态代理对象,代理对象会最终调用invoke方法激活注解注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类作用:1、实现替代配置文件功能,依赖注入,跟数据库有关2、在编译时进行格式检查。...... 阅读详情

注解的使用

注解是JDK1.5有的

应用注解,进行开发和应用:

注解相当于一个特殊的类哦!

   

首先定义一个注解的类  @interface toov5

然后应用这个注解 @A

然后对这个类进行反射调用

 

一个注解的生命周期有三个阶段:

1、  RetentionPolicy.RUNTIME

2 、 RetentionPolicy.SOURCE

3、   RetentionPolicy.CLASS

分别对应Java源文件   calss文件(通过类加载器调用进内存就没有了,比如 @Override等)   内存中的字节码  这三个阶段都可以将注解去掉。 设计时候可以进行声明

 

 

总结: 注解用在哪个阶段、什么类型(方法、类、包、注解、构造方法等)上面。   

元注解以及其枚举属性值不用记,直接看java.lang.annotation包下面的类

做一个注解:

@Retention(RetentionPolicy.RUNTIME)  //为注解服务的 元注解  保留到运行期间
//@Target(ElementType.METHOD) //只能放在Method上不能放在类上
@Target( {ElementType.TYPE, ElementType.METHOD}) //数组里面 类 方法
public @interface toov5 {


}

 

使用它:

@toov5
public class test1 {
    public static void main(String[] args) {
        //玩字節碼,看看有注解沒  注解是否在場
        boolean annotationPresent = test1.class.isAnnotationPresent(toov5.class);
        if (annotationPresent){  //如果有这个注解
            toov5 annotation = test1.class.getAnnotation(toov5.class); //得到这个对象
            System.out.println(annotation);
        }
    }
}

 

 

注解的属性相当于一个胸牌,比如实验中学学生。如果再想细致的区分,那么可以通过这个胸牌再加一个属性区分。

 @MyAnnotation(color = "red")

 

 

可以有默认值:

@Retention(RetentionPolicy.RUNTIME)  //为注解服务的 元注解  保留到运行期间
//@Target(ElementType.METHOD) //只能放在Method上不能放在类上
@Target( {ElementType.TYPE, ElementType.METHOD}) //数组里面 类 方法
public @interface toov5 {
  String color() default "red";   //抽象的并且是public的  指定一个属性默认值
  String value();
}

 

测试:

@toov5(value = "test") // 创建这个注解的实例对象时候需要给属性赋值
public class test1 {
    public static void main(String[] args) {
        //玩字節碼,看看有注解沒  注解是否在場
        boolean annotationPresent = test1.class.isAnnotationPresent(toov5.class);
        if (annotationPresent){  //如果有这个注解
            toov5 annotation = test1.class.getAnnotation(toov5.class); //得到这个对象
            System.out.println(annotation.color()+"-----"+annotation.value());  //打印这个注解属性 取值时候还是以方法调用的形式进行调用
        }
    }
}

 

 

 

 属性复杂一些的比如 数组类型的:

注解:

@Retention(RetentionPolicy.RUNTIME)  //为注解服务的 元注解  保留到运行期间
//@Target(ElementType.METHOD) //只能放在Method上不能放在类上
@Target( {ElementType.TYPE, ElementType.METHOD}) //数组里面 类 方法
public @interface toov5 {
  String color() default "red";   //抽象的并且是public的  指定一个属性默认值
  String value();
  int[] arrayAttr() default {1,6};
}

使用:

@toov5(value = "test", arrayAttr = {1,3,6}) // 创建这个注解的实例对象时候需要给属性赋值
public class test1 {
    public static void main(String[] args) {
        //玩字節碼,看看有注解沒  注解是否在場
        boolean annotationPresent = test1.class.isAnnotationPresent(toov5.class);
        if (annotationPresent){  //如果有这个注解
            toov5 annotation = test1.class.getAnnotation(toov5.class); //得到这个对象
            System.out.println(annotation.color()+"-----"+annotation.value());  //打印这个注解属性 取值时候还是以方法调用的形式进行调用
            System.out.println(annotation.arrayAttr().length);
        }
    }
}

结果:

 

属性的值可以使注解的!

 另外写一个注解:

public @interface toov5Annotation {
    String value();
}

注解中引用这个注解:

@Retention(RetentionPolicy.RUNTIME)  //为注解服务的 元注解  保留到运行期间
//@Target(ElementType.METHOD) //只能放在Method上不能放在类上
@Target( {ElementType.TYPE, ElementType.METHOD}) //数组里面 类 方法
public @interface toov5 {
  String color() default "red";   //抽象的并且是public的  指定一个属性默认值
  String value();
  int[] arrayAttr() default {1,6};
  //返回注解
    toov5Annotation toov5Annotation() default @toov5Annotation("toov5");  //默認值
}

测试:

@toov5(value = "test", arrayAttr = {1,3,6} , toov5Annotation = @toov5Annotation("ttttttest")) // 创建这个注解的实例对象时候需要给属性赋值
public class test1 {
    public static void main(String[] args) {
        //玩字節碼,看看有注解沒  注解是否在場
        boolean annotationPresent = test1.class.isAnnotationPresent(toov5.class);
        if (annotationPresent){  //如果有这个注解
            toov5 annotation = test1.class.getAnnotation(toov5.class); //得到这个对象
            System.out.println(annotation.color()+"-----"+annotation.value());  //打印这个注解属性 取值时候还是以方法调用的形式进行调用
            System.out.println(annotation.arrayAttr().length);
            System.out.println(annotation.toov5Annotation().value());
        }
    }
}

结果:

 

 

 属性也可是是枚举类的!

 略

也可以是class! 略

  

 

posted @ 2019-05-09 00:19 toov5 阅读(...) 评论(...) 编辑 收藏

【Hyper-V】虚拟机网络配置全解析:从端口映射到固定IP实战 本文全面解析Hyper-V虚拟机网络配置,从理解虚拟交换机三种模式(外部、内部、专用)的底层逻辑入手,指导用户创建稳定的内部/NAT网络,并详细演示如何在Linux与Windows虚拟机中配置固定IP。文章进一步深入讲解端口映射原理与netsh命令实战,以及双网卡配置和PowerShell自动化脚本等高级技巧,帮助用户彻底解决虚拟机网络“失联”问题,实现灵活可控的网络环境。 阅读详情

相关推荐

STM32CUBEMX 使用教程5 — DMA配置 & 串口结合DMA实现数据搬运

DMA(Direct Memory Access),直接存储器访问(或数据搬运),是STM32中很实用的一个外设。DMA 传输数据方式不需要 CPU 参与控制传输,也不用中断处理的方式进行数据搬运处理,纯粹通过硬件为 RAM 与 I/O 设备之间开辟一条直接传送数据的通路,使 CPU 的效率大大提高。

weixin_43866583的博客 1499

注解的基本使用方法

1. 什么是注解? 注解就是给某个方法或属性标注的一种特定行为的描述。 注解的语法: public @interface MyAnnotation { } 要注意的是它不是接口,只是长得相似。它在前面加了一个@符号。 2.有什么作用: 注解相当于一种标记,开发工具包和其他程序可以用反射来了解你的类以及各种元素上有何种标记,来完成相应的任务。 @Override public String toString() { } 如上所示就是给方法加了注解。 3.注解的定义: 元注解:元注解的作用

qq_45942412的博客 4066

三极管自激升压电路设计 - 从参数计算到实践验证

本文详细解析了三极管自激升压电路(焦耳小偷电路)的设计原理与实践方法。通过剖析自激振荡机制与三极管电流关系,指导读者完成从核心参数计算、关键元件选型到面包板搭建调试的全过程。文章重点阐述了如何利用电感、三极管等基础元件实现低压直流到高压的转换,是理解开关电源与电磁能量转换的绝佳实践项目。

weixin_29250573的博客 367

java8元注解解析

@Target 该注解用来约束注解的作用域,ElementType为其作用域的枚举类。若未指定作用域,则默认可以用于任何元素上。也可以多个值使用,如@Target(value={CONSTRUCTOR, FIELDE})。 Target注解如下: @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATI...

wendyyanan的专栏 585

Spring AI实现RAG(检索增强生成)详解与实践

支持多种文件格式的文档加载实现高效的向量存储和检索构建智能的问答系统提供可追溯的知识服务RAG技术为AI应用提供了强大的知识增强能力,使得模型能够基于实际文档生成准确、可靠的回答。

beiduofen2011的专栏 1238

保姆级教程:用NX机电概念设计与RobotStudio实现ModbusTCP联合仿真(附完整代码)

本文提供了一份详细的NX机电概念设计与RobotStudio联合仿真实战教程。通过ModbusTCP协议构建数据桥梁,实现机械行为与机器人控制逻辑的双向实时同步。文章从环境搭建、信号配置、RAPID代码编写到联合调试,逐步拆解了实现数字孪生核心链路的关键步骤,并分享了常见问题排查方法,助力工程师在虚拟环境中提前验证产线协同。

sat99的博客 1099

注解(注解的概念、注解的分类、自定义注解、注解的原理)

注解(注解的概念、注解的分类、自定义注解、注解的原理)

H215919719的博客 1万+

Keil开发中CMSIS Driver API缺失问题的排查与解决

本文详细解析Keil开发中CMSIS Driver API缺失问题的根源与解决方案。针对版本不匹配、安装不完整等常见原因,提供在线与离线安装的对比及详细排查步骤,重点涵盖版本兼容性分析与项目配置验证,帮助开发者彻底解决API缺失错误并预防问题复发。

rust6ferris的博客 550

Java关于注解的使用、如何自定义注解、如何通过元注解解析注解

注解属性,其实本质上是抽象方法。但是我们按照属性来理解容易理解,因为到时候使用注解的时候,需要用=为其赋值。public @interface 注解名{XXXXXXX定义属性:增强注解的作用数据类型 属性名():此属性没有默认值,需要在使用注解的时候为其赋值。数据类型 属性名() default 值:此属性有默认值,如果有需要,还可以二次赋值。注解中能定义8种基本类型:String类型、class类型、枚举类型、注解类型、以及以上类型的一维数组。//品牌//车零件//价格//数量。

weixin_45797022的博客 1532

STM32实战开发(71):STM32人脸识别开发教程:基于摄像头模块的人脸识别系统

在嵌入式系统中,STM32凭借其强大的计算性能、丰富的外设接口以及低功耗特性,成为了实现人脸识别系统的理想平台。STM32虽然没有强大的计算能力,但可以通过合理利用外部硬件加速模块,如DSP、GPU、FPGA等,结合轻量级的人脸识别算法,实现高效的人脸识别系统。尽管STM32的计算资源相对有限,但通过合理的优化和使用高效的算法,我们依然能够实现高效的人脸识别功能。在本项目中,我们使用。在STM32开发中,虽然处理能力有限,但通过优化算法和合理利用硬件加速,我们仍然可以实现一个轻量级的、实时的人脸识别系统。

2201_76125393的博客 1662

YOLOv11涨点改进| CVPR 2026 |独家创新首发、特征融合改进篇| 引入FAAFusion傅里叶角对准融合模块,促进高低频特征融合,增强模型在小目标、密集目标检测和旋转目标检测任务高效涨点

🔥本文提出FAAFusion傅里叶角对准融合模块,用于改进YOLOv11网络模型。该模块通过在特征金字塔融合阶段对齐高低层特征的方向信息,缓解传统FPN直接融合带来的方向冲突问题。FAAFusion利用傅里叶旋转等变性原理,在频域估计主方向并进行特征对齐,显著提升了多尺度特征表达的一致性与有效性。实验表明,该方法在DOTA等遥感数据集上取得了新的最先进水平,特别适用于旋转目标检测任务。文章详细介绍了模块原理、结构优势,并提供了三种不同的YOLOv11改进配置方案和完整的核心代码实现。

Ai缝合怪、助力小伙伴高效发论文 153

java注解的使用及常用注解

java注解的使用及常用注解

qq_42003527的博客 2342

CARAFE轻量级上采样算子详解:从原理到YOLOv5/YOLOv8实战魔改全攻略

摘要: 本文探讨了CARAFE(内容感知特征重组)上采样算子在YOLOv5/YOLOv8目标检测模型中的应用。传统上采样方法(如最近邻插值)易丢失细节信息,而CARAFE通过内容自适应机制和大感受野特性,动态生成上采样核,显著提升小目标检测性能。文章详细解析了CARAFE的算法原理(核生成与特征重组两步),并提供了在YOLOv5/YOLOv8中集成的代码实现与配置修改方案。实验表明,引入CARAFE后模型mAP提升约0.6%,且保持轻量级优势。此外,文中还总结了训练调优技巧、部署优化方案及常见问题解决方法,

FJN110的博客 917

Android 认识注解、学习注解、使用注解

1、什么是注解? 就像最常见的 @override注解一样,注解是一种通过一些标注就能自动完成一些代码实现的一种机制。 2、注解的好处 (1)使用注解可以降低项目的耦合度 (2)能自动完成一些代码,实现代码的复用,减轻开发者工作量 (3)代码侵入性较低,使用起来也很方便。 3、什么是元注解?元注解有哪些 元注解是java提供的基础注解,负责注解其他注解。元注解有以下几种 @Retention:注解保留的生命周期 (源码阶段、编译阶段、运行阶段 例如 butternkife 中代替finid.

安卓开发-顺 的博客 1155

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java 注解 —— 注解的理解、注解的使用与自定义注解

Java 注解 —— 注解的理解、注解的使用与自定义注解 参考网址: 《秒懂,Java 注解 (Annotation)你可以这样学》 《Java注解基本原理》 《注解Annotation实现原理与自定义注解例子》 《框架开发之Java注解的妙用》 一. 注解基本介绍 1.1 什么是注解? 什么是注解?严谨的来说,注解提供了一种安全的类似注释的机制,用来将任何的信息或...

琦小虾的代码世界 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

注解是什么?为什么要使用注解?

点击上方 "程序员小乐"关注,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文Maturity not to see how old you, but...

程序员小乐 5356

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

注解及反射的使用

上一章我讲了连接池,本来是说要讲注解的,讲注解的话要讲好多铺垫才行,算了试着说一说了。 注解的使用前言一、注解是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这边讲的话,可能不会把它所有的应用都讲,因为说一个的话,其它的原理都是相同的。 提示:好的,下面正式开始 一、注解是什么? 当然了,这个意义还是要讲。毕竟我一开始对这个注解也很陌生,注解?一想想到注释了 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等

T_Antry 8860

Java注解,元注解,自定义注解的使用

自定义注解,需要使用@interface来定义,使用@interface自定义注解时,自动继承java.lang.annotation.Annotation接口。权限修饰符 @interface 注解名 {// 定义内容 String value() default "";// 参数类型 参数名 默认值;@interface 用来声明一个注解其中上面的表示这个注解需要提供一个String类型的参数,且其默认值为空字符串default ""value() 就是参数的名称。

m0_63622279的博客 1909

java注解及自定义注解开发、使用元注解修饰注解的声明

1.注解与注释对比 注释: 给人看的提示信息,人看了提示信息了解程序的内容 java中注释的格式:// /**/ /** */ 注解: sun在jdk5.0开始提供的新特性 给程序看的提示信息,程序看后可以根据有无注解及注解上属性的不同配置执行不同的逻辑。 java中的注解的格式:@AnnoName(key=value,...) 注解在开发中,可以作为轻量化配置来使用,比起使用xml作为配置文件,更加的轻便易用,在java开发中大量的使用 2.jdk内置注解 @Override ..

浅时光|初如梦 1549

注解与反射 01:注解的相关概念,内置注解,元注解,自定义注解,以及在 Java 中如何使用注解

本文主要讲述注解相关内容,包括注解的相关概念,内置注解,元注解,自定义注解,以及在 Java 中如何使用注解。

积累,沉淀,温故而知新 989

什么是元注解 元注解有哪些 元注解是干什么的 注解用什么修饰

@Retention @Document @Target @Inherited @Repeatable 类型注解(Type Annotation) 怎么用 ,元注解怎么用

weixin_57604284的博客 7971

java注解使用变量_java注解的使用

java中注解的使用1.说再前面使用注解开发的好处1.使代码更加干净易读,易于维护修改。比如,以前使用spring的开发,都是基于xml文件实现了统一的配置管理,但是缺点也是显而易见的,就是随着项目的越来越大,xml文件会变得越来越复杂,维护成本也会越来越高。使用注解就可以提供更大的便捷性,易于维护修改。2 可以实现代码的类型检查,特别是在编译器的角度实现一些类型检查,比如预检查(@Overrid...

weixin_36143191的博客 4589

Java 注解使用教程

Java 1.5引入了注解,现在它在Java EE框架(如HibernateJersey和Spring)中被大量使用。Java注释是该语言的一个强大特性,用于向Java代码中添加元数据。它们不直接影响程序逻辑,但可以由工具、库或框架处理,以执行特定的任务(例如代码生成、验证或自定义处理)。先定义三个注解Retention;Target;Retention;

tangPHP的博客 1174

什么是注解,注解怎么用

注释: 对程序进行解释说明的文字,给人看的 什么是注解? Annotation JDK1.5推出的新特性 可能给类增加额外的信息 注解可以保存一些简单的数据 注解的作用: 编写文档:通过代码里标识的注解生成文档【生成文档doc文档】 编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】 代码分析:通过代码里标识的注解对代码进行分析【使用反射】 今天学注解...

itzhuzhu的博客 1500
上一篇: 总结
下一篇: Java8
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值