@interface java注解

详细指南:如何在TI C2000基于C28x的微控制器上部署FreeRTOS_C语言实现 FreeRTOS是一个小型、开源、实时的嵌入式操作系统内核。它为多种微控制器和处理器提供了支持,包括ARM、AVR、MSP430和PIC等。小型和轻量级:适合资源受限的嵌入式系统。实时性:可以满足严格的实时要求。多任务支持:支持多任务并发执行。内存管理:提供了多种内存管理策略。模块化设计:用户可以根据需要选择所需的功能模块。TI C2000系列微控制器是专为实时控制应用设计的。高性能C28x核:提供了高速的浮点运算能力。丰富的外设:包括PWM、ADC、DAC、通信接口等。低功耗。 阅读详情
@Documented,@Retention,@Target,@Inherited

1. 编写自定义@Todo注解
经常我们在写程序时,有时候有些功能在当前的版本中并不提供,或由于某些其它原因,有些方法没有完成,而留待以后完成,我们在javadoc中用@TODO来描述这一行为,下面用java注解来实现。

public @interface Todo { } // Todo.java

如果你想让这个注解类型能够自省的话,给它加上@Todo注解,写法如下:

@Todo
public @interface Todo{ }


下面我们给这个注解接受参数的能力,代码如下:
@Todo("Just articleware")
public @interface Todo{
public enum Priority { LOW, MEDIUM, HIGH }
String value();
String[] owners() default "";
Priority priority() default Priority.MEDIUM;
}

注意:注解类性所能接受的参数类型有着严格的规则:
a. 参数类型只能是:primitive, String, Class, enum, annotation, 或者是数组;
b. 参数值不能为空,因此每一个参数值都要定义一个缺省值; 
c. 名字为value的参数可以用简便的方法来设置; 
d. 参数的写法如同写简单方法(看如上代码),不允许加入参数,不允许有throws子句等。

在上面的代码中,我们为@Todo定义了3个参数, 分别是value, owners, priority. 注意:由于value的特殊性,它的的却省值可以由上面代码中的"Just articleware"来定义,当然你也可以单独写一个缺省值。

下面看一个应用@Todo注解的例子:
@Todo(
value="Class scope",
priority=Unfinished.Priority.LOW
)
public class TodoDemo {
@Todo("Constructor scope")//通过快捷方式,设置value的值
public TodoDemo() { }
@Todo(owner="Jason", value="Method scope")
public void foo() { }
}

上面的代码很简单,不多介绍。

下面我们想让@Todo不能应用在fields, parameters, 或者local variables(因为这对我们来说没有意义);它应当可以出现在javadoc中;在运行是具有持久性。要实现这些特性,就需要annotation包的支持啦。

2. 应用annotation包的支持

1)@Documented 
类和方法的annotation缺省情况下是不出现在javadoc中的,为了加入这个性质我们用@Documented
应用代码如下(简单,不多介绍):
package com.robin;
import java.lang.annotation.*;
@Todo("Just articleware")
@Documented
public @interface Todo{ ...


2)@Retention 
用来表明你的annotation的有效期,可以有三种选择(如图所示):

以下示例代码应用RUNTIME策略
package com.robin;
import java.lang.annotation.*;
@Todo("Just articleware")
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Todo{ ...

3) @Target 
@Target注解表明某个注解应用在哪些目标上,可选择如下范围: 
  • ElementType.TYPE (class, interface, enum) 
  • ElementType.FIELD (instance variable) 
  • ElementType.METHOD ElementType.PARAMETER 
  • ElementType.CONSTRUCTOR 
  • ElementType.LOCAL_VARIABLE 
  • ElementType.ANNOTATION_TYPE (应用于另一个注解上) 
  • ElementType.PACKAGE 

按我们的功能要求,代码如下:
package com.robin;
import java.lang.annotation.*;
@Todo("Just articleware")
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,
ElementType.CONSTRUCTOR,ElementType.ANNOTATION_TYPE,
ElementType.PACKAGE})
public @interface Todo{ ...

4) @Inherited 
@Inherited表明是否一个使用某个annotation的父类可以让此annotation应用于子类。
示例代码如下:
package com.robin;
import java.lang.annotation.*;
@Todo("Just articleware")
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,
ElementType.CONSTRUCTOR,ElementType.ANNOTATION_TYPE,
ElementType.PACKAGE})
@Inherited
public @interface Todo{
public enum Priority { LOW, MEDIUM, HIGH }
String value();
String[] owners() default "";
Priority priority() default Priority.MEDIUM;
}
NPU性能榨取手把手教程:RK3588上YOLOv5s多线程部署与120FPS极限探索 RK3588 YOLOv5s多线程部署优化指南 本教程深入解析RK3588芯片上YOLOv5s模型的高性能多线程部署方案。RK3588作为瑞芯微旗舰AIoT芯片,内置三核NPU(6TOPS算力)和硬件加速器(RGA/VPU),为AI推理提供强大支持。通过线程池技术,我们将视频处理的读取、推理、后处理等环节解耦并行,显著提升系统吞吐量。教程详细介绍了从PyTorch到RKNN格式的模型转换流程、INT8量化方法,以及基于RKNN C++ SDK的YOLOv5推理核心实现,帮助开发者最大化发挥RK3588的AI 阅读详情

相关推荐

Mamba-YOLO实战:环境配置+模型训练+精度调优全流程指南(附Colab代码)

在目标检测领域,一场由状态空间模型引发的技术革新正在悄然改写行业格局。近期国际顶级学术期刊连续发布的YOLOv5_mamba、FER-YOLO等突破性成果,不仅刷新了检测精度记录,更开创了结构化状态空间模型(SSM)与经典检测框架的创新融合范式。当前该领域涌现的十大标杆性研究,已在以下维度取得突破性进展:√ 遮挡目标识别准确率提升38%√ 小样本场景泛化能力增强2.7倍√ 视频流检测延迟降低至17ms√ 多目标交叉干扰抑制效果达SOTA。

2501_90555291的博客 1581

如何编写子定义annotation及使用JDK5.0 annotation包中的annotations

这一小节介绍如何编写一个自定义的注解类型,以及如何应用JDK5.0 java.lang.annotation包中提供的4种注解:@Documented,@Retention,@Target,@Inherited1. 编写自定义@Todo注解经常我们在写程序时,有时候有些功能在当前的版本中并不提供,或由于某些其它原因,有些方法没有完成,而留待以后完成,我们在javadoc中用@TODO来描述这一行为

SUB 的专栏 1585

开漏输出(漏极开路输出与集电极开路输出)和推挽输出怎么判断

判断一个引脚是还是。

weixin_56838517的博客 1055

Java基础加强总结(一)——注解(Annotation)

 一、认识注解   注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5之后才有的新特性 JDK1.5之后内部提供的三个注解        @Deprecated 意...

weixin_34194702的博客 1592

Abaqus滞回问题求解—浆锚连接装配式剪力墙滞回模拟

当下土木工程研究生,多数都在从事装配式混凝土构件安全或装配式混凝土构件连接节点力学性能的研究。研究这类问题,几乎脱离不开对有限元软件的使用,Abaqus求解能力非常强大,但模型处理能力相对较弱。装配式混凝土结构的有限元计算与传统现浇结构相比,其节点处理起来相对复杂,计算结果往往需要凸显出连接节点力学特性,所以对建模精程度的要求较高。所以向大家介绍一款工具—HyperMesh软件(一下简称Hm),它是专业的有限元前处理工具,用于处理装配式混凝土构件或连接节点有限元模型比较合适。这篇文章主要介绍如何利用Hm处理

qq_31918049的博客 2902

延迟相乘叠加求和 DMAS (Field II 仿真代码)

(Delay Multiply and Sum, DMAS)算法,最初是为雷达微波系统设计的,研究者们对 DMAS 波束合成方法进行了修改,并应用超声成像。结果表明,DMAS 波束合成在模拟和实验中的表现都优于传统的延时叠加(Delay and Sum, DAS),这种新方法带来的主要改进是对比度分辨率明显提高(即主瓣和侧瓣更窄),从而增加了动态范围,提高了 B 型超声图像质量。与传统 DAS 相似,DMAS 算法通过对来自超声换能器阵元的信号应用几何计算延迟来聚焦接收到的波束。

weixin_38452364的博客 3083

annotation java 数组_深入理解Java:注解(Annotation)自定义注解入门

要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解:元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:1.@Target,2.@Retention,3.@Document...

weixin_39620037的博客 1045

手把手复现金蝶云星空V8.1文件上传漏洞(附完整POC与修复方案)

本文深度解析金蝶云星空V8.1文件上传漏洞,提供详细的漏洞复现步骤与完整POC,涵盖技术原理、测试环境搭建及验证流程。同时给出多维防护方案,包括官方补丁部署、临时缓解措施和长期安全加固建议,帮助企业有效防范任意文件上传风险。

weixin_30505225的博客 180

[Android]annottation @NonNull and @interface

在看源码时,看到了  @NonNull , 它为 android 的 一种注解, 用来注释参数,参数值不能为 null,不然 IDE会发警告。 protected void onSaveInstanceState(@NonNull Bundle outState) { ... } 源码如下: frameworks/base/core/java/android/annotatio

champwang 637

解密UFS Explorer:Drobo BeyondRAID数据恢复实战指南

本文详细介绍了使用UFS Explorer Professional Recovery软件中的Drobo BeyondRAID助手进行数据恢复的完整实战流程。当Drobo设备因BeyondRAID配置信息丢失而无法访问时,该工具能安全、只读地扫描硬盘,虚拟重建存储池,帮助用户找回宝贵数据。指南涵盖了从前期准备、硬盘选择、配置扫描到数据安全导出的每一步关键操作与常见问题解决方案。

weixin_29219539的博客 269

14、5G物理层的灵活解决方案:广义频分复用(GFDM)

广义频分复用(GFDM)作为一种高度灵活的5G物理层多载波调制方案,能够满足多样化应用场景的需求,包括高吞吐量的比特管道通信、低功耗高连接数的物联网、超低延迟的触觉互联网以及广覆盖的无线区域网。通过参数化配置,GFDM可适配LTE资源网格,实现与现有系统的兼容与共存。其支持多种解调方式、干扰消除技术、OQAM映射及预编码机制,兼具低带外发射、高频谱效率和强鲁棒性。GFDM还能统一描述OFDM、FBMC、FTN等多种经典与先进波形,成为5G及未来通信系统中极具潜力的通用波形框架。

gold8的专栏 108

Java 接口,多个入参参数非空判断,用注解怎么代替

首先,需要定义一个注解,用于标记需要进行非空检查的参数。注解类需要使用 @Target 和 @Retention 注解来指定注解的使用范围和生命周期。以上就是使用注解来实现多个入参参数非空判断的方法。通过定义注解、在接口方法中使用注解、实现注解处理器和注册注解处理器,可以方便地实现参数非空检查。在接口方法的参数列表中,使用 @NotNull 注解标记需要进行非空检查的参数。在 Java 接口中,可以使用注解来实现多个入参参数非空判断。最后,在应用程序中注册注解处理器,以便在接口方法调用时执行非空检查。

还在活水泥的未来包工头 1999

《UDS协议从入门到精通》系列——图解0x10:诊断会话控制

什么是诊断会话控制服务?切换模式时ECU要做哪些?有没有通信示例?本文全网最详解!!

车载系统攻城狮 1万+

java interface 实例_java @interface 注解详解及实例

java @interface 注解详解及实例1 简介在Java中,定义注解其实和定义接口差多不,只需要在interface前添加一个@符号就可以,即 @interface Zhujie{ },这就表明我们定义了一个名为 @Zhujie 的注解。注解中的每一个方法定义了这个注解类型的一个元素,特别注意:注解中方法的声明中一定不能包含参数,也不能抛出异 常;方法的返回值被限制为简单类型、String...

weixin_28698129的博客 540

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

老版QQ原生表情gif动态

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

Java 注解 数组参数 @interface

注解是一种用于类、方法、变量、参数等声明的元数据,它可以被用来为代码提供额外的信息。注解本身不能直接包含数组,但注解的属性可以是数组类型。在这个示例中,MyClass 类和 myMethod 方法都被 @MyAnnotation 注解标记,并且它们的 value 属性被赋予了不同的字符串数组值。总结一下,虽然注解本身不能直接是数组,但注解的属性可以是数组类型,这使得注解能够包含多个值。在这个例子中,MyAnnotation 是一个注解,它包含一个名为 value 的属性,该属性是一个字符串数组。

王小工小工历程 854

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

为什么 java 注解用@interface 来表示

从语言设计的角度来看,虽然注解的行为和使用方式与接口有相似之处(例如都可以包含方法签名),但是它们的目的和功能是不同的。关键字来定义注解类型提供了一种清晰且一致的方式来标识这是一个注解声明。它使得开发者能够一眼识别出这是一个特殊的结构——即注解,而不是普通的类或接口。这有助于强调注解的本质:它们是一系列可以附加到代码元素(如类、方法、变量等)上的元数据标签。不仅是Java语言为定义注解类型所设计的一种专门语法,而且这种设计提高了代码的可读性和语义准确性,同时也有助于维护语言的一致性和清晰度。

Java的专栏 462

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java-@interface 自定义注解

@interface使用1.@interface自定义注解 <1>@interface自定义注解自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。 <2>在定义注解时,不能继承其他的注解或接口。 <3>使用@interface来声明一个注解, 1>.每一个方法实际上是声明了一个配置参数, 2>.方法的名称就是参数的名称, 3>.返回值类型就是参数的类型,(返回值类型只能是基本类型...

qq:489366879 486

java @interface 注解详解及实例

java @interface 注解详解及实例 1 简介 在Java中,定义注解其实和定义接口差多不,只需要在interface前添加一个@符号就可以,即 @interface Zhujie{ },这就表明我们定义了一个名为 @Zhujie 的注解。注解中的每一个方法定义了这个注解类型的一个元素,特别注意:注解中方法的声明中一定不能包含参数,也不能抛出异 常;方法的返回值被限制为简单类型、St...

eudemonia 2703

【Java基础】注解--@interface使用详解

注解@interface不是接口是注解类,在jdk1.5之后加入的功能,使用interface自定义注解时,自动继承了java.lang.annotation.Annotation接口。在定义注解时,不能继承其他的注解或接口。@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名,返回值类型就是参数的类型(返回值类型只能是基本类型、Class、String、enum)。可以通过default来声明参数的默认值。@Target。

人间剧场的博客 1026

Java自定义注解@interface

自定义注解 步骤 第一步,用@interface定义注解: 在类中声明可以去掉public public @interface Report { } 第二步,元注释配置注解 @Target 最常用的元注解是@Target。使用@Target可以定义Annotation能够被应用于源码的哪些位置: 类或接口:ElementType.TYPE; 字段:ElementType.FIELD; 方法:ElementType.METHOD; 构造方法:ElementType.CONSTRUCTOR; 方法参

weixin_44223977的博客 756

java @interface 语法_@interface自定义注解的语法

自定义注解:使用@interface自定义注解时,自动继承了java.lang.annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。@interface 用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型(返回值类型只能是基本类型、class、String、enum)。定义注解格式: publi...

weixin_32637935的博客 495

java @interface 注解

详见地址:http://www.cnblogs.com/xdp-gacl/p/3622275.html java用@interface Annotation{ }定义一个注解 @Annotation,一个注解是一个类  注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现...

qq_34381084的博客 229

Java中的自定义注解@interface

Java的注解大家用得都挺多的,现在讲解一下它提供的自定义注解语法。 自定义注解 使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。 @interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是...

Mr.Phoebe的专栏 1777

java @interface 注解详解

一、认识注解   注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5之后才有的新特性 JDK1.5之后内部提供的三个注解        @Depreca

fishmai的专栏 560

Java如何实现自定义注解@interface

什么是注解? 注解的定义 官网描述如下: Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。 将上面的话再翻译一下,如下: (1)元数据在开发中的作用就是做数据约束和标准...

PureUnicorn的博客 734

Java进阶之注解定义@interface:用法实例(二百一十七)

本篇目的:Java注解定义@interface:用法实例基本概念注解是元数据标签,通过@interface声明,可附加在包、类、方法、字段等程序元素上,供编译器或运行时工具读取。功能定义标记、配置、约束、文档信息;支持默认值、数组、枚举、元注解;可被反射解析。使用限制不能继承;成员只能是基本类型、String、Class、枚举、注解、数组;需元注解指定保留策略与目标。性能特性编译后存入class文件;运行时解析有轻微开销;可配合注解处理器生成代码。使用场景。

Android系统攻城狮 372
上一篇: org.apache.velocity 简介
下一篇: Java:注解(Annotation)自定义注解入门
AlvinTech14
博客等级 码龄12年 10粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值