当前位置: 首页 > news >正文

174. Java 注释 - 声明注释类型

文章目录

  • 174. Java 注释 - 声明注释类型
      • 🎯 注释替代代码中的文档信息
      • 📝 定义自定义注释类型
      • 🎯 注释元素说明
      • 📝 使用自定义注释
      • 📌 注释文档化
      • 🎯 `@Documented` 注释的作用
      • 📝 总结

174. Java 注释 - 声明注释类型

🎯 注释替代代码中的文档信息

在传统的 Java 编程实践中,团队可能会在每个类的开头插入详细的注释,用以提供关于类的元数据(如作者、修改日期、版本等)。这种方式虽然有效,但随着项目变得越来越复杂,可能会导致冗长和重复的注释,尤其是当多个类共享类似的信息时。

例如,以下是一个传统的注释方式:

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}

📝 定义自定义注释类型

为了使代码更加简洁和结构化,可以使用自定义注释类型来替代这些繁琐的注释信息。定义自定义注释类型需要使用 @interface 关键字,它的语法类似于接口定义,但用于定义注释类型。注释类型的元素就像方法一样,可以定义返回类型和默认值。

下面是一个自定义注释类型的定义示例,用于替代上面的类级注释:

@interface ClassPreamble {String author();                  // 作者String date();                    // 日期int currentRevision() default 1;   // 当前版本,默认值为1String lastModified() default "N/A";  // 最后修改日期,默认值为 "N/A"String lastModifiedBy() default "N/A";  // 最后修改人,默认值为 "N/A"String[] reviewers();             // 审阅者,注意使用数组
}

🎯 注释元素说明

  • 元素声明: 自定义注释的元素类似于方法声明。每个元素都有一个返回类型(如 Stringint 或数组类型)。有些元素可以提供默认值,如果不提供,使用默认值。
  • 数组: 在注释中,可以使用数组类型(如 String[])来存储多个值。例如,reviewers 数组可以包含多个审阅者。

📝 使用自定义注释

一旦定义了注释类型,就可以在代码中使用它,并为注释的元素提供具体的值。以下是如何在类声明中使用 @ClassPreamble 注释的示例:

@ClassPreamble(author = "John Doe",date = "3/17/2002",currentRevision = 6,lastModified = "4/12/2004",lastModifiedBy = "Jane Doe",reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {// class code goes here}

📌 注释文档化

为了确保自定义注释在 Javadoc 生成的文档中能够显示,必须使用 @Documented 注释对注释类型进行标记。这使得 Javadoc 工具能够识别和处理该注释,生成包含相关信息的文档。

import java.lang.annotation.*;@Documented
@interface ClassPreamble {String author(); String date();  int currentRevision() default 1;String lastModified() default "N/A";String lastModifiedBy() default "N/A";String[] reviewers();
}

🎯 @Documented 注释的作用

  • @Documented: 这是一个元注释(meta-annotation),它会告知 Javadoc 工具在生成文档时包括此注释的相关信息。没有 @Documented,自定义注释不会出现在 Javadoc 文档中。

📝 总结

  • 自定义注释类型 可以替代传统的类头部注释,使代码更加结构化和可维护。
  • 通过 @interface 语法定义注释类型,并可以为注释类型元素指定默认值。
  • 在使用自定义注释时,为每个元素提供实际的值,使其能更好地传达元数据。
  • 使用 @Documented 注释确保自定义注释会出现在 Javadoc 文档中,提升文档的可读性。
http://www.dtcms.com/a/357109.html

相关文章:

  • 《AI智脉速递》2025 年 8 月22 日 - 29 日
  • VS2022+QT6.7+NetWork(TCP服务器多客户端助手)
  • Rust 登堂 之 深入Rust 类型(六)
  • 如何打造团队协作型 IP,而非单人依赖型?
  • BugKu Web渗透之file_get_contents
  • Kotlin中回调函数的使用示例
  • Git-Git和TortoiseGit的安装以及使用
  • 云渲染云推流助力WebGL应用网页端无负担推流,摆脱终端加载缓慢问题
  • 无恶意软件勒索:Storm-0501如何转向云原生攻击
  • Linux829 shell:expect interact “ “ set
  • 知识卡片html5动态网页源码
  • CRYPT32!CryptMsgUpdate函数分析之CRYPT32!PkiAsn1Decode函数的作用是得到pci
  • ros2--topic/话题--接口
  • tauri打包失败
  • 太阳光模拟器在卫星研发与测试中的应用
  • wav音频转C语言样点数组
  • 嵌入式Linux设备树驱动开发 - dtsof驱动
  • shell学习(二)
  • Sharding-JDBC 使用方法
  • 为什么不能创建泛型数组?
  • C++并发编程-17. 线程安全的链表
  • Unity EventTrigger 动态添加事件
  • flume事务机制详解:保障数据可靠性的核心逻辑
  • 项目中为什么使用SpringBoot?
  • 晨控CK-FR102ANS与欧姆龙NX系列PLC配置EtherNet/IP通讯连接手册
  • 如何规划一年、三年、五年的IP发展路线图?
  • Android 端 QGroundControl 控制 PC 端Gazebo Sim 仿真无人机
  • 龙迅#LT7642GX适用于4路HDMI2.1/DP/TPYE-C转HDMI+LVDS/MIPI混合开关应用,分辨率高达8K30HZ !
  • ADFS 和 OAuth 的区别
  • 第三届机械工程与先进制造智能化技术研讨会(MEAMIT2025)