如何在 Java 编译时断言某些内容?

2023-12-26

有时数据结构应该具有某些无法用 Java 直接描述的关系,但在编辑代码时尽早检查这些关系是有好处的。典型的例子是数组足够大或者不同模块中的枚举有相应的成员。

BOOST 在 C++ 中提供了一个很好的“静态断言”工具,甚至在断言失败时提供了一半不错的错误;有谁知道如何用Java构建编译时断言工具?

Edit:我刚刚看到一个完美的例子:this http://kickjava.com/src/org/eclipse/core/internal/localstore/ILocalStoreConstants.java.htmEclipse 中的类有两个常量数组,假定它们的长度相同。如果那是我的代码,我希望编译器告诉我它们是否有不同的长度。


您可以使用多种工具

  • PMD
  • 格子风格
  • FindBugs
  • 验证 Jakarta Commons-lang 中的方法(我们使用它而不是断言并将其保留在其中)
  • Cobertura/EMMA(用于代码覆盖率)。

这些和良好的单元测试的结合将捕捉到容易实现的目标(以及一些更高的东西)

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

如何在 Java 编译时断言某些内容? 的相关文章

随机推荐

  • 有问题的 System.Diagnostics.Contracts 的有用性

    我一直在使用新的 System Diagnostics Contracts 类 因为它一开始看起来非常有用 用于检查入站参数 返回值等的静态方法 它是一个干净的接口 可以替换大量 if then 语句和内部构建的库工具 然而 它在大多数运行
  • docker SHM_SIZE /dev/shm:调整共享内存大小

    我想调整大小postgres容器默认的共享内存64M 所以我补充一下 build context shm size 2gb 我正在使用 3 6 版本的 compose 文件 postgres服务定义 version 3 6 services
  • Prolog 中的“逻辑纯度”是什么意思?

    逻辑纯度 是什么意思 在 Prolog 编程的上下文中 这逻辑纯粹性 questions tagged logical purity标签信息说 仅使用 Horn 子句的程序 但是那么 谓词会如何if 3 https stackoverflo
  • 无法导入 org.h2.server.web.WebServlet

    我正在尝试配置我的 Spring Boot 应用程序以使用 h2 控制台 我找了一些文章 都是使用webServlet 但我无法导入该类 尽管我在 pom xml 中添加了 h2 依赖项 我收到此错误消息can not resolve th
  • 取消接受并关闭 Python 处理/多处理侦听器连接的正确方法

    我正在使用py处理 http developer berlios de projects pyprocessing在此示例中的模块 但是如果您运行 则用多处理替换处理可能应该可以工作蟒蛇2 6 http docs python org li
  • MySQL - 实体:表“TableDetails”中列“IsPrimaryKey”的值为 DBNull

    我在用视觉工作室2013 with 实体框架5 and Mmysql服务器5 7 9 当尝试从数据库创建模型时 或 从数据库更新模型 将出现以下消息 System Data StrongTypingException 列的值 表 Table
  • 使用 URL 打开 Chrome 应用

    有没有办法从默认的 Android 浏览器打开 Android 上的 Chrome 应用程序 我可以打开该应用程序 但它不会将用户重定向到正确的页面 这是我尝试过的 a href 我发现我可能必须形成一个意图 URL 但我希望有一种比这更简
  • “Web”客户端类型不允许自定义方案 URI - Google 与 Firebase

    我正在尝试使用 firebase 在我的 iOS 应用程序中实现 google 登录 我遵循这个教程 https firebase google com docs auth ios google signin https firebase
  • 在 FileAppender 中使用 Logback 标记时出错

    我已经开始探索我们的应用程序的 Logback 选项 要求之一是为具有特定 标记 的日志条目创建单独的日志文件 下面是我正在使用的 logback xml 文件和我收到的错误 logback 网站上的示例显示了 SMTPAppender 的
  • 需要帮助实施 Facebook 积分

    我读过一些关于开始实施 Facebook 积分的其他帖子 并且从 github 下载了示例代码 https github com facebook credits api sample https github com facebook c
  • MS Access:自定义纸张尺寸

    我正在构建一个 MS Access 2010 应用程序 我将从此应用程序打印条形码标签 还有各种其他报告和表格也将使用标准打印机设置进行打印 但是对于条形码 我需要将其打印到特定打印机 并且必须将其设置为使用特殊的页面尺寸 在我的搜索中我有
  • 为什么“WriteOnlyWorksheet”对象没有属性“cell”?

    import openpyxl wb openpyxl Workbook multiplication xlsx wb create sheet sheet wb get active sheet sheet cell column 6 r
  • 在线性布局中以相等间距水平对齐按钮

    我正在尝试制作一个线性布局 其中 5 个按钮水平放置 间距相等 但所有按钮的大小 宽度 应仅为 40dp 我试过这个
  • 如何使用 SVN 热复制恢复存储库?

    好的 我使用svn的hotcopy进行增量备份 现在如何测试hotcopy是否正常工作 我在这里搜索了有关热复制的帖子 他们中的大多数似乎只是鼓励使用 svn hotcopy 但没有谈论如何使用 hotcopy 进行恢复 关于如何使用我制作
  • 如何向 UIImage 或 UIImageView 或 UIView 添加外部发光

    我想添加褪色的阴影 外发光到UIImage UIImageView UIView但我知道没有Core Graphics根本不 Edit 请帮忙 采用 Cirrostratus 概述的方法 保留其缓存副本 然后在拖动时应用变换来更改图像的大小
  • 使用反汇编器的.NET 中的对象布局结构

    我有兴趣查看对象布局结构 并尝试在 Visual Studio 中使用反汇编 以下是我的代码 class myclass public int m a myclass myc new myclass myc m a 23 I am sett
  • 如何在 ionic 2 中按月对项目进行分组?

    我有一个数据集合 我想按月分组以形成日历列表视图 并带有分隔符 如所附图像 如何在 ionic 2 中做到这一点 data id 75 title Oudergesprekken startDate 18 01 2017 id 76 tit
  • Android:构造时未能setLocale(),关闭数据库

    我正在尝试创建一个包含 12 个不同表的数据库 该数据库直到今天都运行良好 现在 每次我在卸载并重新安装它 或只是清除应用程序数据 后第一次启动我的应用程序时 我都会收到标题中看到的错误消息 但是 在收到此错误后第二次启动应用程序时 它工作
  • 如何使用 Linq 和 IN 子句

    这是我的代码 if catid 0 posts posts Where x gt x catid IN 1 8 2 109 23 The in在此代码中显示为语法错误 有没有办法来解决这个问题 您也必须使用另一个列表进行比较 List
  • 如何在 Java 编译时断言某些内容?

    有时数据结构应该具有某些无法用 Java 直接描述的关系 但在编辑代码时尽早检查这些关系是有好处的 典型的例子是数组足够大或者不同模块中的枚举有相应的成员 BOOST 在 C 中提供了一个很好的 静态断言 工具 甚至在断言失败时提供了一半不