将多个注释合并为一个以避免重复

2023-12-27

我正在使用 Spring MVC 来实现各种 REST 服务。对于文档,我使用 Swagger。

这很好用,文档看起来不错,而且非常实用。我遇到的唯一问题是文档注释确实挤满了控制器类,尤其是错误代码注释。

Example:

@ApiErrors(value = {
    @ApiError(code = 123, reason = "Reason123"),
    @ApiError(code = 124, reason = "Reason124"),
    @ApiError(code = 125, reason = "Reason125"),
    @ApiError(code = 126, reason = "Reason126"),
    @ApiError(code = 127, reason = "Reason127") })
public void exampleFunctionImplementation() {
}

在许多情况下,这会导致大量注释,而真正的应用程序代码隐藏在中间的某个位置。此外,该注释集经常重复,因为许多方法可能返回同一组错误代码。

是否有任何选项可以通过在其他地方将注释列表定义为另一个类文件中的常量来缩短这一时间?或者也许是我忽略的更简单的事情?

我尝试定义数组@ApiError某处的项目,但这不会编译:

ApiError[] array = {ApiError(code = 123, reason = "Reason123")};

如果有人能给我提示如何解决这个问题,我将很高兴,提前致谢!


注释成员只有有限的类型(JLS http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6 9.6).

如果注释类型中声明的方法的返回类型不是以下之一,则为编译时错误:原始类型、String、Class、Class 的任何参数化调用、枚举类型(第 8.9 节)、注释类型,或元素类型为上述类型之一的数组类型 (§10)。

它们的值必须是常量表达式 (JLS 9.7)。该标准使用术语相称.

T 是数组类型 E[] 并且:

V 是一个 ElementValueArrayInitializer,并且 V 中的每个 ElementValue(类似于数组初始值设定项中的 VariableInitializer)都与 E 相当;或者

V 是与 E 相当的 ElementValue。

V 的类型与 T 的赋值兼容(第 5.2 节),而且:

如果 T 是基本类型或 String,并且 V 是常量表达式(第 15.28 节)。

V 不为空。

如果 T 是 Class 或 Class 的调用,并且 V 是类文字(第 15.8.2 节)。

如果 T 是枚举类型,并且 V 是枚举常量。

您的数组不是常量表达式,因此您的代码将无法编译。如果您预计会有大量注释列表,也许还有另一种方法来完成此任务。不过,我不了解 Swagger,因此您可能无法避免这种情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将多个注释合并为一个以避免重复 的相关文章

随机推荐

  • 有什么理由不使用固定宽度整数类型(例如 uint8_t)?

    假设您使用的编译器支持 C99 甚至只是 stdint h 是否有任何理由不使用固定宽度整数类型 例如 uint8 t 我知道的原因之一是使用它更有意义chars 处理字符时而不是使用 u int8 ts 如中提到的这个问题 https s
  • 在 node -v 14.3 中等待外部异步函数

    我读到14 3版本发布博客 https nodejs org en blog release v14 3 0 fbclid IwAR0uxEz48H9O8Ap0I7zt4OWF0Qyhrw6TpRpDLQRNOSpCD2o 0ASmu3UI
  • 如何使用 (Ruby) RGeo 转换(取消投影)坐标

    我开始于如何转换 Shapefile 的坐标 https stackoverflow com questions 6963991 how can i transform the coordinates of a shapefile 那里的回
  • 报告所有小于 n 的质数

    我需要打印所有小于给定数字 n 的素数 我可以使用埃拉托色尼筛 但该算法的运行时间不是 O n 这个问题有O n 时间的解决方案吗 埃拉托斯特尼筛法的时间复杂度为 O n log log n 函数 log log n 增长非常缓慢 例如 l
  • 如何在 .Net 应用程序中使用 IE 代理服务器设置及其凭据

    如何使用保存的代理设置和凭据作为 HttpWebRequests 的默认设置 代理设置可以访问和使用 但不能访问和使用凭据 IWebProxy proxy WebRequest GetSystemWebProxy proxy Credent
  • WinRT XAML 中的硬编码 PCH 名称

    WinRT 项目 C CX 当我的 XAML 文件被编译时 生成的代码文件包含一个 include pch h 线 我希望我的预编译器标头以不同的方式调用 stdafx h 出于遗留代码的原因 在项目属性中更改它会影响 C 源 但不会影响
  • 如何使用 DCMTK 二进制文件将模态工作列表发送到模态而不接收来自模态的查询?

    我正在使用 DCMTKstorescp exe 从 CR 模式接收图像 然后处理 将它们保存在我的数据库中 是否可以使用其他 DCMTK 二进制文件手动发送PatientName and PatientId在患者去那里之前进行 CR 模式
  • 如何模拟数据库进行测试(Java)?

    我正在使用 Java 进行编程 并且我的应用程序大量使用了数据库 因此 能够轻松测试我的数据库使用情况对我来说很重要 DB 测试都是关于哪些内容 对我来说 他们应该提供两个简单的要求 验证 SQL 语法 更重要的是 根据给定情况检查数据是否
  • 模板非类型参数,C++11,字符串文字限制

    模板非类型参数的限制规则如下 非类型 非模板模板参数的模板参数应为以下之一 对于整型或枚举类型的非类型模板参数 模板参数类型的转换常量表达式 5 19 或者 非类型模板参数的名称 或者 常量表达式 5 19 指定具有静态存储持续时间和外部或
  • 如何从尾部而不是头部拉出可变参数模板参数?

    由于愚蠢的原因 我不会进入这里 我需要注释掉的行才能工作 而其上面的行则不起作用 template
  • 在ios6中从iPhone相机捕获全景图像

    有没有办法使用 iPhone 相机以编程方式创建全景图像 就像iOS 6中的捕捉全景图像功能一样 知道它是如何工作的或者 API 这对我有帮助 提前致谢 如上所述 Apple 没有这方面的 API 但有开源全景项目 请查看这个问题 iOS
  • 有没有下载 ab Apache benchmark 的链接

    谁能给我直接下载 Ab exe Apache 基准测试实用程序吗 在 Ubuntu 上 我可以安装 ab 而无需通过 apache2 utils 软件包安装所有 Apache 所以 sudo apt get install apache2
  • 从远程仓库检索丢失的文件?

    我不小心从本地 git 存储库中删除了一些文件 我还没有将此更改推送到远程 有没有一种简单的方法可以从远程取回这些文件 通常我只会做一个git clone但似乎应该有更好的方法 git checkout 如何放弃 Git 中未暂存的更改 h
  • 如何正确使用 Spark -> Kafka -> JDBC Sink 连接器和 Avro?

    我有一个简单的 Spark 应用程序 通过以下方式生成 Kafka 消息 import org apache spark sql SparkSession import org apache spark sql functions col
  • 张量流中fft的结果与numpy不同

    我想在张量流中使用fft 但我发现分别在numpy和tensorflow中使用FFT函数时结果不同 特别是当输入数组的大小很大时 import tensorflow as tf import numpy as np aa tf lin sp
  • 如何使用一系列参数初始化结构体

    在许多语言中 常见的构造函数习惯用法是使用如下伪代码的语法来初始化对象的值 constructor Foo args for arg object arg arg Rust 乍一看似乎也不例外 许多impl for a struct包含一个
  • 如何删除 pandas、python 中某个对象的行?

    我的数据中有一个列包含这些类型的值 2 2 yes 2 yes 在 python pandas 中 我如何识别包含一串字母的整行 然后删除或删除整行 Thanks IIUC df df pd to numeric df col errors
  • 如何为 RESTful WCF 实现自定义 QueryStringConverter?

    我已经实现了一个自定义的 QueryStringConverter 类 并使用自定义的 WebHttpBehavior 子类将其连接起来 当我进行服务调用时 它会命中 CanConvert 覆盖中的断点 并且我为此参数返回 true 但它从
  • 没有主类的 Spring Boot

    我正在尝试使用 Spring Boot 并创建一个 jar 并将其安装到我的 Maven 存储库中 这是一个库 jar 文件 将在我的主应用程序 也是一个 Spring Boot 应用程序 中用作依赖项 现在 我正在研究一个 hello w
  • 将多个注释合并为一个以避免重复

    我正在使用 Spring MVC 来实现各种 REST 服务 对于文档 我使用 Swagger 这很好用 文档看起来不错 而且非常实用 我遇到的唯一问题是文档注释确实挤满了控制器类 尤其是错误代码注释 Example ApiErrors v