JavaAnnotation入门-

c#小王子 c#小王子 2021-12-10 589 Java


JavaAnnotation入门-


摘要:


本文针对 java 初学者或者 annotation 初次使用者全面地说明了 annotation 的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的 annotation 程序,但是对于一些高级的 annotation 应用(例如使用自定义 annotation 生成 javabean 映射 xml 文件)还需要进一步的研究和探讨。涉及到深入 annotation 的内容,作者将在后文《Java Annotation 高级应用》中谈到。


同时,annotation 运行存在两种方式:运行时、编译时。上文中讨论的都是在运行时的 annotation 应用,但在编译时的 annotation 应用还没有涉及。


一、为什么使用 Annotation:

在 JAVA 应用中,我们常遇到一些需要使用模版代码。例如,为了编写一个 JAX-RPC web service,我们必须提供一对接口和实现作为模版代码。如果使用 annotation 对远程访问的方法代码进行修饰的话,这个模版就能够使用工具自动生成。另外,一些 API 需要使用与程序代码同时维护的附属文件。例如,JavaBeans 需要一个 BeanIn fo Class 与一个 Bean 同时使用/维护,而 EJB 则同样需要一个部署描述符。此时在程序中使用 a

nnotation 来维护这些附属文件的信息将十分便利而且减少了错误。


二、Annotation 工作方式:

在 5.0 版之前的 Java 平台已经具有了一些 ad hoc annotation 机制。比如,使用 transient 修饰符来标识一个成员变量在序列化子系统中应被忽略。而@deprecated 这个 javadoc tag 也是一个 ad hoc annotation 用来说明一个方法已过时。从 Java5.0 版发布以来,5.0 平台提供了一个正式的 annotation 功能:允许开发者定义、使用自己的 annoatation 类型。此功能由一个定义 annotation 类型的语法和一个描述 annotation 声明的语法,读取 annotaion 的 API,一个使用 annotation 修饰的 class 文件,一个 annotation 处理工具(apt)组成。


1annotation 并不直接影响代码语义,但是它能够工作的方式被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。annotation 可以从源文件、class 文件或者以在运行时反射的多种方式被读取。当然 annotation 在某种程度上使 javadoc tag 更加完整。一般情况下,如果这个标记对 java文档产生影响或者用于生成 java 文档的话,它应该作为一个 javadoc tag;否则将作为一个 annotation。


三、Annotation 使用方法:


1。类型声明方式:


通常,应用程序并不是必须定义 annotation 类型,但是定义 annotation 类型并非难事。Annotation 类型声明于一般的接口声明极为类似,区别只在于它在 interface 关键字前面使用“@”符号。annotation 类型的每个方法声明定义了一个 annotation 类型成员,但方法声明不必有参数或者

异常声明;方法返回值的类型被限制在以下的范围:primitives、String、Class、enums、annotation 和前面类型的数组;方法可以有默认值。

下面是一个简单的 annotation 类型声明:


清单 1:


/**
* Describes the Request-For-Enhancement(RFE) that led
* to the presence of the annotated API element.
*/
public @interface RequestForEnhancement {
int id();
String synopsis();
String engineer() default "[unassigned]";
String date(); default "[unimplemented]";
} 


2代码中只定义了一个 annotation 类型 RequestForEnhancement。


2。修饰方法的 annotation 声明方式:

annotation 是一种修饰符,能够如其它修饰符(如 public、static、final)一般使用。习惯用法是 annotaions 用在其它的修饰符前面。annotations 由“@+annotation 类型+带有括号的成员-值列表”组成。这些成员的值必须是编译时常量(即在运行时不变)。


A:下面是一个使用了 RequestForEnhancement annotation 的方法声明:


清单 2:


@RequestForEnhancement(
id = 2868724,
synopsis = "Enable time-travel",
engineer = "Mr. Peabody",
date = "4/1/3007"
)
public static void travelThroughTime(Date destination) { ... }


B:当声明一个没有成员的 annotation 类型声明时,可使用以下方式:


清单 3:

/**
* Indicates that the specification of the annotated API element
* is preliminary and subject to change.
*/
public @interface Preliminary { }


3作为上面没有成员的 annotation 类型声明的简写方式:


清单 4:


@Preliminary public class TimeTravel { ... }


【下载地址】

百度网盘链接:https://pan.baidu.com/s/1s-_fNijA2g_IWi-KtbpY0g

提取码:g4ee


相关文章


使用-JFreeChart来创建基于web的图表

使用-JFreeChart来创建基于web的图表

XStream使用文档

XStream使用文档

WebService发布过程及常见问题

WebService发布过程及常见问题

webpack实战入门进阶调优分享

webpack实战入门进阶调优分享

weblogic调优参数及监控指标

weblogic调优参数及监控指标

weblogic节点管理

weblogic节点管理

weblogic管理控制台概述

weblogic管理控制台概述

weblogic-部署和启动

weblogic-部署和启动

WebLogic-Server-性能及调优-调优-Java-虚拟机

Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。

Velocity用户教程

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

Velocity用户手册

Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。


文章热度: 166291
文章数量: 333
推荐阅读

FlashFXP绿色版网盘下载,附激活教程 1781

FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具

Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1565

firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ

navicat for mysql中文绿色版网盘下载 1623

Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq

火车头采集器(旗舰版)绿色版网盘下载 1707

火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA

Photoshop(CS-2015-2023)绿色中文版软件下载 1823

安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64

知之

知之平台是全球领先的知识付费平台。提供各个领域的项目实战经验分享,提供优质的行业解决方案信息,来帮助您的工作和学习

使用指南 建议意见 用户协议 友情链接 隐私政策 Powered by NOOU ©2020 知之