很多 Annotation 都是为了取代代码中传统的注释。
例如,假设你编写的代码中有下面这段注释:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
要使用 Annotation 来取代传统的注释,首先需要定义一个 Annotation 类型。语法如下:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}
定义 Annotation 类型的语法看起来很像定义接口的语法,不过在 interface 关键字前面加了一个 @ 符号。
在上面这个例子中还定义了 Annotation 的元素,定义元素的语法看起来很像定义方法的语法,每个元素都可以使用 default 关键字来定义默认值。
上面的 Annotation 定义之后,你就可以使用它了,并且可以给它的元素赋值,例如:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}
注意:如果要让 @ClassPreamble 出现在 Javadoc-generated 生成的文档中,那么需要给它加上 @Documented 注释:
// import this to use @Documented
import java.lang.annotation.*;
@Documented
@interface ClassPreamble {
// Annotation element definitions
}
文章来源:
http://www.aptusource.org/2014/03/annotations-base/
分享到:
相关推荐
在探讨"C ++注释C++ Annotations"这一主题之前,我们首先需要明确几个基本概念:C++作为一种高级编程语言,它不仅继承了C语言的强大功能,还在此基础上进行了大量的改进和扩展,使其成为一种更为强大、灵活且易于...
简而言之,该库旨在作为基础构建块,利用和 8中引入的属性来构建带有注释的项目。 假设您正在处理几个项目,并且每个项目都需要注释支持。 使用这个库,我们使您的工作变得更轻松,您所需要的只是Biurad\...
本篇将详细探讨`hibernate-annotations-3.4.0.GA`和`hibernate-entitymanager-3.4.0.GA`这两个版本中的核心知识点,尤其是它们在注释和枚举映射方面的应用。 首先,`hibernate-annotations`是Hibernate提供的一套...
Java 5.0,也被称为Java 5,是Java编程语言的一个重要版本,它引入了许多新的特性和改进,显著地增强了开发者的效率和...对于开发者来说,理解并熟练掌握这些特性是非常重要的,因为它们已经成为现代Java编程的基础。
文档整体采用注释的形式对C++语言进行了详细解释,覆盖了从基础语法到面向对象的各个特性的介绍。这使得它不仅适合C++初学者,同时也为已经有一定编程基础的人提供了一个深入了解C++特性的资源。 在C++11标准发布后...
- **行尾注释**:C++支持使用“//”进行单行注释,而C仅支持“/* */”风格的块注释。 - **NULL指针**:C++区分NULL和0,提高了类型安全性。 - **严格的类型检查**:C++强制执行更严格的类型检查,减少运行时错误。 -...
在计算机视觉领域,数据标注是训练深度学习模型的关键步骤之一,它为模型提供了理解图像内容的基础。COCO(Common Objects in Context)是一个广泛使用的图像识别和分割数据集,而COCO WholeBody则是COCO数据集的一...
一、Java注释基础 Java注释有三种类型:单行注释、多行注释和Javadoc注释。它们主要用于解释代码的功能和用法,不参与程序的执行。 1. 单行注释:以`//`开始,常用于临时注释或快速注解单行代码。 2. 多行注释:以`...
创建构建信息的注释,并将前n个失败的测试作为单独的注释列出 例子 - uses: ashley-taylor/junit-report-annotations-action@1.3 if: always() with: access-token: ${{ secrets.GITHUB_TOKEN }} 此处提供了一...
### C++ Annotations Version 5.1.0b ...综上所述,《C++ Annotations Version 5.1.0b》为希望过渡到C++的C程序员提供了一个全面的指南,涵盖了C++的基础知识、新特性以及面向对象编程的核心概念。
Android_Annotations_Demo 此示例显示了如何在应用程序中使用Android注释库。 主gradle文件 应用程式Gradle档案 Android清单文件 这是您在应用程序运行时将在模拟器中看到的内容。 使用Android注释注入可绘制对象,...
SAS(Standard Annotations and Semantics),中文可译为“标准注释与语义”,是一种广泛应用于FX(DirectX专用)和CgFX(兼容DirectX与OpenGL)文件格式中的标准化注释和语义系统。通过SAS,开发人员能够更方便地...
尽管这些基础注释简单易懂,但它们的丰富性和可扩展性并不足以满足所有情况,因此推荐使用如__drv_in()等更复杂的宏来代替简单的单标识符注释。 接着,文档探讨了代码分析中“种类”的问题。它指出,并非所有的驱动...
4. **保存注释**:完成注释后,点击“Save annotations (as .xml / .yaml)”将标注信息保存到对应的数据格式文件中。 5. **预览与编辑**:LabelImg也提供了预览和编辑已标注图像的功能,你可以随时查看标注效果,...
首先,MyBatis的代码生成器(MyBatis Generator,简称MBG)能够自动生成Mapper接口、Mapper XML文件、实体类以及对应的DAO层代码,大大减少了手动编写这些基础代码的时间。通过自定义MBG的配置文件,我们可以定制...
Javascript 注释嘿,这是我在 GitHub 上的第一个存储库。 我有一些项目正在建设中,但他们仍然有很多东西要替换以发送存储库。 所以,这个存储库的目标只是发送一些关于我目前对 Javascript 的研究的文件。 规格前端...
在这个项目中,Canvas作为绘图的基础,提供了绘制几何形状、处理鼠标事件和图形交互的能力。 2. 鼠标事件处理: 项目中的几何图形绘制功能依赖于捕获和响应鼠标的点击和移动事件。例如,当用户按下鼠标并移动时,...
这些旨在描述观察到的过滤基础结构的各个方面,例如网络中间盒,深层数据包设备和ISP阻塞。 该集合以Python库的形式分发:analysislib,其中包含dns / blockpage签名以及一些用于创建字典以进行匹配的代码。 有两种...
1. 元注解(Meta-Annotations)是注解的注解,用于定义注解的行为和使用范围。常见的元注解有: - `@Retention`: 定义注解的生命周期,可以是SOURCE(源码阶段),CLASS(编译后),或者RUNTIME(运行时)。RUNTIME...
在这个名为“spring-demo-annotations”的项目中,我们将深入探讨Spring框架中的注解(Annotation)特性,以及如何在实际应用中使用它们。此项目来源于一个Udemy课程,旨在通过实例帮助开发者理解和掌握Spring注解的...