JAVA元数据注释初探

今天了解一下JAVA元数据的用法和一些作用,拿出一些例子,给自己看,怕自己以后忘了

JAVA的元数据功能是JDK1.5才开始支持的,以前都没有,正因为是新支持的,所以有关于它的介绍挺少,用处也不太多,最近发现很多框架都可以把它用来配置一些东西,以代替以前比较复杂的XML配置.想像一下,在JAVA代码中直接写入注释来配置,那该是多么好的事情,让我们写习惯了代码和看习惯了代码的人来说,这无疑是一件很爽的事情.

我们可以使用JAVA内置的注释内型,如果觉得不够用,可以定义自己的注释内型,定义如下

/*   
 * MyType.java   
 *   
 * Created on 2006年12月7日, 下午3:40   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package testAnno;    
   
/**   
 *   
 * 
@author lbf   
 
*/   
import java.lang.annotation.*;    
@Retention(RetentionPolicy.RUNTIME)    
@Target({ElementType.TYPE,ElementType.METHOD})    
public @interface MyType {    
    String authorName();    
    String lastModified();    
    String bugFixes() 
default "ok";    
}

这里我定义了一个我自己的注释类,声明方式和声明接口差不多,只不过在interface前面多了一个@符号. 

注释类也可以用注释类注释,如此下去.

@Retention(RetentionPolicy.RUNTIME)

这句表示它的保存范围是到RUNTIME,也就是运行时,这样在类运行的时候,我们也可以取到有关它的信息.

@Target({ElementType.TYPE,ElementType.METHOD})  

这句表示它的适用对象,它可以用在哪里地方,我这里定义的是它可以用在类的定义和方法的定义上

然后我们看我们是怎么为我们写的类加上注释的


/*   
 * Test1.java   
 *   
 * Created on 2006年12月7日, 下午3:34   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package testAnno;    
   
/**   
 *   
 * 
@author lbf   
 
*/   
import java.lang.annotation.*;    
@MyType(authorName
="hadeslee",lastModified="20061207")    
public class Test1 {    
        
    
/** Creates a new instance of Test1 */   
    
public Test1() {    
    }    
    @Deprecated   
    @MyType(authorName
="hadeslee",lastModified="20061207",bugFixes="what")    
    
public void doSth(){    
               
    }    
    @MyType(authorName
="hadeslee",lastModified="20061207",bugFixes="what")    
    
public void doAnother(){    
            
    }    
}    

加了元数据的类和不加元数据的类差不多,只不过如果你的元数据注释如果是运行时的话,你的类文件可能会比不加元数据大一些,因为它必须把一些注释的信息写入到class文件中去,我们已经注释了我们的类,现在我们来看一下,我们如何去取我们的注释,
/*   
 * GetAnno.java   
 *   
 * Created on 2006年12月7日, 下午3:46   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package testAnno;    
   
/**   
 *   
 * 
@author lbf   
 
*/   
import java.lang.annotation.*;    
import java.lang.reflect.*;    
public class GetAnno {    
        
    
/** Creates a new instance of GetAnno */   
    
public GetAnno() {    
    }    
    
public static void main(String[] args)throws Exception {    
        Test1 t
=new Test1();    
        Class c
=Test1.class ;    
        Annotation[] as
= c.getDeclaredAnnotations();    
        
for(Annotation an:as){    
            System.out.println(
"类Test1的注释"+an);    
        }    
        Method med
=c.getDeclaredMethod("doSth");    
        Annotation[] ass
=med.getDeclaredAnnotations();    
        
for(Annotation an:ass){    
            Class
<!--/sp-->extends Annotation> clazz=an.annotationType();    
            Annotation[] ased
=clazz.getAnnotations();    
            
for(Annotation ad:ased){    
                System.out.println(
"注释的注释:"+ad);    
            }    
            System.out.println(
"方法doSth的注释:"+an);    
        }    
    }    
}   

此程序输出如下

类Test1的注释@testAnno.MyType(bugFixes=ok, authorName=hadeslee, lastModified=20061207)
注释的注释:@java.lang.annotation.Documented()
注释的注释:@java.lang.annotation.Retention(value=RUNTIME)
方法doSth的注释:@java.lang.Deprecated()
注释的注释:@java.lang.annotation.Retention(value=RUNTIME)
注释的注释:@java.lang.annotation.Target(value=[TYPE, METHOD])
方法doSth的注释:@testAnno.MyType(bugFixes=what, authorName=hadeslee, lastModified=20061207)

简单的写了一点点关元数据的东西,希望对自己或者对别人有一点点帮助.

 

从这代码里,我们可以看出,取注释其实很简单,就是利用反射机制来取的.不过我们要特别注意到的一点是,我们不但可以取我们定义的类的注释,也可以取注释的注释,我们这里只取到了MyType的注释,其实还可以往下取,在取的过程中,我们可以看到这些元数据注释类都用了哪些注释:)

基于555定时器的呼吸灯电路 呼吸灯是指LED灯在芯片的控制下完成由亮到暗的逐渐变化,感觉就像人在呼吸,其广泛使用在手机上,起到一个通知提醒的作用。呼吸灯在许多灯光装饰上也有大量使用,如音响、汽车广告牌等,在生活中较为常见。... 阅读详情

相关推荐

MatterPort3D 数据集下载

【代码】MatterPort3D 数据集下载。

qq_44106838的博客 6781

java 元数据 和 元注解

java 元数据 和 元注解。助你看懂源码。

优快云 / 稀土掘金/ B站 / GitHub: Cyan_RA9 2163

ml307 二次开发

中移物联网旗下4g模组官方网站官方教程id=514官方客户不知道啥时候上班 早上10点也说不在服务时间内 找不到官方的sdk下载路径。

myWorld001的博客 2879

Spring元数据Metadata的使用,注解编程之AnnotationMetadata,ClassMetadata、MetadataReaderFactory

前言 Spring在2.0的时候就支持了基于XML Schema的扩展机制,让我们可以自定义的对xml配置文件进行扩展(四大步骤,有兴趣的可以自己学习),比如鼎鼎大名的Dubbo它就扩展了xml,用它来引入服务或者导出服务。 随着Spring3.0+的发展,xml慢慢的淡出了我们的视野,特别是Spring Boot的流行让xml彻底消失,所有的xml配置都使用注解的方式进行了代替。有的人说注解编...

z69183787的专栏 2921

基于FFT的阵列方向图快速计算公式推导

因为自己毕设涉及到阵列方向图综合相关知识,最近阅读了关于方向图综合的相关文献,就其中关于使用FFT计算阵列方向图的方法进行了公式推导。 简介: 自从1965年Colley-Tukey发表快速傅里叶变换[1]论文以来,FFT在许多科学技术领域获得了广泛和成功的应用。在阵列信号处理与雷达信号处理领域,随着科技的发展,对于电尺寸较大的相控阵天线,使用公式按照级数求和计算天线阵列方向图的方法效率甚低,...

qq_38151438的博客 4290

手把手调试Android 14 ShellTransitions:用Log追踪ActiveTransition与Handler匹配过程

本文详细介绍了在Android 14中调试ShellTransitions机制的方法,重点通过Log追踪ActiveTransition与Handler的匹配过程。文章提供了关键日志点植入策略、Handler匹配机制解析及实战调试案例,帮助开发者解决窗口转场动画中的卡顿和错乱问题,提升系统动画性能。

weixin_42652674的博客 429

java中元数据是什么_java 元数据

什么是元数据?元数据是指用来描述数据的数据,更通俗一点,就是描述代码间关系,或者代码与其他资源(例如数据库表)之间内在联系的数据。在一些技术框架,如struts、EJB、hibernate就不知不觉用到了元数据。对struts来说,元数据指的是struts-config.xml;对EJB来说,就是ejb-jar.xml和厂商自定义的xml文件;对hibernate来说就是hbm文件。以上阐述的几种...

weixin_39856709的博客 5185

C#上位机3D可视化:HelixToolkit.Wpf集成点云/模型(机器人臂姿态实时监控)

核心控件是3D可视化的核心,需搭配和网格辅助定位;模型加载:按关节拆分机械臂模型,通过组合平移+旋转实现姿态控制;姿态更新:将机器人关节角度转换为3D模型的旋转变换,工业场景需从控制器实时获取角度;点云渲染:通过实现点云加载,需注意坐标系转换和性能优化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 714

java注解

注解的相关概念 1.认识Annotation JDK1.5开始,java增加了对元数据(即类的组成单元数据)的支持,也就是(Annotation)注解,它是代码里做的特殊标记,这些标记可以在编译,类加载,运行时在不改变原有逻辑的情况下,被读取,并执行相应的处理,通过使用Annotation,程序员可以在源文件中嵌入一些补充的信息,代码分析工具。开发工具和部署工具可以通过这些补充信息进行验证或者进行部署,Annotation类似于修饰符一样被使用,可以用于包,类,构造器方法,方法,成员变量,参数,局部变量的声

七一 512

别再让 AI 瞎写 SAP 代码了!这套 Claude Code Skill 的验证机制才是关键

本文深入解析了专为SAP CAP开发设计的AI辅助工具sap-cap-capire的技术架构。该工具采用四层设计:协议层集成MCP和LSP实现实时模型访问与语法检查;智能层通过4个专业化Agent(数据建模、服务开发等)分工协作;验证层确保代码质量;知识层存储文档模板。这种工程化设计解决了通用AI在CAP开发中面临的上下文不足、专业性缺失和代码质量保证等核心问题,通过本地化服务和实时反馈机制显著提升了开发效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 882

YOLO26 标签分配机制:STAL 小目标感知分配策略

YOLO26提出的STAL标签分配策略通过尺度感知机制优化了小目标检测性能。该方法根据目标面积将检测对象分为小、中、大三类,分别采用差异化的分配参数(TopK数量、IoU阈值和中心度权重),特别是对小目标采用更宽松的匹配条件和更高的中心度权重。实验结果表明,STAL策略显著提升了小目标检测精度(AP_small),同时保持了整体检测性能(mAP),为解决目标检测中尺度不平衡问题提供了有效方案。

一键难忘的博客 789

JAVA元数据注释初探-Java频道-中国IT实验室

JAVA的元数据功能是JDK1.5才开始支持的,以前都没有,正因为是新支持的,所以有关于它的介绍挺少,用处也不太多,最近发现很多框架都可以把它用来配置一些东西,以代替以前比较复杂的XML配置。想像一下,在JAVA代码中直接写入注释来配置,那该是多么好的事情,让我们写习惯了代码和看习惯了代码的人来说,这无疑是一件很爽的事情。  我们可以使用JAVA内置的注释内型,如果觉得不够用,可以定义自己的注释内...

Rod_Johson的专栏 139

NVIDIA Isaac Lab 入门教程(一)

Isaac Lab 是一个用于机器人学习的统一模块化框架,旨在简化机器人研究中的常见工作流程(如 RL、从演示中学习和运动规划)。它建立在英伟达 Isaac Sim 的基础上,利用最新的仿真功能实现逼真的场景和快速高效的仿真。该框架的核心目标是Isaac Lab 的主要功能包括:由 PhysX 提供的快速准确的物理模拟、用于矢量化渲染的平铺渲染 API、用于提高鲁棒性和适应性的域随机化,以及对在云中运行的支持。有关该框架的更多信息,请参阅论文[MYY+23]。

机器人控制与仿真应用 8217

JAVA的元数据注释

JAVA元数据注释初探   JAVA的元数据功能是JDK1.5才开始支持的,以前都没有,正因为是新支持的,所以有关于它的介绍挺少,用处也不太多,最近发现很多框架都可以把它用来配置一些东西,以代替以前比较复杂的XML配置.想像一下,在JAVA代码中直接写入注释来配置,那该是多么好的事情,让我们写习惯了代码和看习惯了代码的人来说,这无疑是一件很爽的事情.   我们可以使用JAVA内置的...

深未来技术 222

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

java 元数据 注解_Java元数据总结:Java注释的使用和定义

元数据从metadata一词译来,就是“关于数据的数据”的意思。越来越的开源框架都提供了“元数据”支持了,其实也就是注释支持。今天系统学习一下Java注释(Java元数据)。本文内容不限于Javadoc的注释。1.什么是Java元数据,有什么作用?  元数据,就是“关于数据的数据”。功能也有很多啦。你可能用过Javadoc的注释自动生成文档。这就是元数据功能的一种。总的来说,元数据可以用来创建文档...

weixin_39579127的博客 301

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java元数据的作用_Java元数据总结:Java注释的使用和定义

元数据从metadata一词译来,就是“关于数据的数据”的意思。越来越的开源框架都提供了“元数据”支持了,其实也就是注释支持。今天系统学习一下Java注释(Java元数据)。本文内容不限于Javadoc的注释。1.什么是Java元数据,有什么作用?元数据,就是“关于数据的数据”。功能也有很多啦。你可能用过Javadoc的注释自动生成文档。这就是元数据功能的一种。总的来说,元数据可以用来创建文档,跟...

weixin_29070721的博客 311

Java 7中的注释(元数据)

注释(元数据)   从JDK 5开始,Java中增加了一项可以在源文件中嵌入附加信息的功能。这些信息称为注释,它不会改变程序的运行。但是,这些信息在开发和部署期间可以由许多工具使用。例如,注释可以由源代码生成器、编译器或者部署工具处理。虽然元数据(metadata)这个术语也用来指示这项功能,但是术语"注释"的描述性更好,并且更加常用。   注释是一个庞大复杂的话题,对其深入讨

u010797225的专栏 768

Java注释

Java注释 Java中的注释不会出现在可执行程序中。 Java中为我们提供了3种注释: // 单行注释:其注释内容从//开始到本行结尾。 /**/多行注释:/*注释内容在此处写*/  多行注释。 /***/文档注释:注释以/**开始,以*/结束。可以用来自动生成文档。 下面注重来讲文档注释   文档注释 注释以/**开始,以*/结束。可以用来自动生成文档。 JDK包含一个很有

开发世界 4333

注释 向 Java 代码中添加元数据

注释,J2SE 5.0 (Tiger) 中的新功能,将非常需要的元数据工具引入核心 Java 语言。该系列文章分为两部分,在这第 1 部分中,作者 Brett McLaughlin 解释了元数据如此有用的原因,向您介绍了 Java 语言中的注释,并研究了 Tiger 的内置注释。 编程的一个最新的趋势,尤其是在 Java 编程方面,是使用 元数据。简单地说,元数据就是

oscar999的专栏 2281

Java注释:您想知道的一切

注释是元数据的一种形式。它提供有关程序的数据,该数据不属于程序本身。注释对其注释的代码的操作没有直接影响。注释是在Java语言规范的第三版中以Java语言首次引入的,并首先在Java 5...

qqqqqkmbnjjhb的专栏 4413

java 自定义注释_带有自定义注释的Java注释教程

java 自定义注释 Java批注提供有关代码的信息,并且它们对其批注的代码没有直接影响。 在本教程中,我们将学习Java注释,如何编写自定义注释 ,注释用法以及如何使用反射来解析注释 。 注释是在Java 1.5中引入的,现在它已在Hibernate, Jersey和Spring等Java框架中大量使用。 注释是有关嵌入在程序本身中的程序的元数据。 可以通过注释解析工具或编译器进行解析。...

最佳 Java 编程 762

java中元数据是什么_JAVA元数据注释是什么?

JAVA的元数据功能是JDK1。5才开始支持的,以前都没有,正因为是新支持的,所以有关于它的介绍挺少,用处也不太多,最近发现很多框架都可以把它用来配置一些东西,以代替以前比较复杂的XML配置。想像一下,在JAVA代码中直接写入注释来配置,那该是多么好的事情,让我们写习惯了代码和看习惯了代码的人来说,这无疑是一件很爽的事情。我们可以使用JAVA内置的注释内型,如果觉得不够用,可以定义自己的注释内型,...

weixin_39794347的博客 814

java注释是什么_Java注释的使用和定义是什么?

元数据从metadata一词译来,就是“关于数据的数据”的意思。越来越的开源框架都提供了“元数据”支持了,其实也就是注释支持。今天系统学习一下Java注释(Java元数据)。本文内容不限于Javadoc的注释。1。什么是Java元数据,有什么作用?元数据,就是“关于数据的数据”。功能也有很多啦。你可能用过Javadoc的注释自动生成文档。这就是元数据功能的一种。总的来说,元数据可以用来创建文档,跟...

weixin_39908758的博客 319
上一篇: EJB初学日记(6)
下一篇: EJB学习日记(7)
hadeslbf
博客等级 码龄20年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值