如何在Java中编译时断言?

时间:2009-06-15 21:43:08

标签: java

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

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

编辑:我刚看到一个完美的例子:来自Eclipse的this类有两个常量数组,假设长度相同。如果这是我的代码,我希望编译器告诉我它们是否有不同的长度。

3 个答案:

答案 0 :(得分:7)

您可以使用许多工具

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

这些和良好的单元测试的组合将抓住低悬的水果(以及一些更高级的东西)

答案 1 :(得分:2)

作为Eclipse等IDE的一部分的增量编译器可以配置为在查找合法java代码时抛出警告或错误,但可能会在运行时导致问题。你可以随意调整这些设置,尽管它可能会开始变得有侵略性和烦人。

答案 2 :(得分:1)

您可以使用注释。

有关选项,请参阅Which @NotNull Java annotation should I use?

将JSR-308和JSR-305视为java的未来。