启用每个包的断言

bar*_*s2x 5 java assertions

是否可以在每个包中启用java断言?我想在我的代码中使用断言,但是我的代码旁边的一个东西打破了一些无关的断言,并且作者拒绝修复它(至少现在,并不是一个严重的错误).

Bar*_*cki 6

有可能,请参阅http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html#enable-disable

启用和禁用断言

要以各种粒度启用断言,请使用-enableassertions或-ea,switch.要禁用各种粒度的断言,请使用-disableassertions或-da,switch.您可以使用提供给交换机的参数指定粒度:

  • packageName ...
    启用或禁用命名包和任何子包中的断言.
  • ...
    启用或禁用当前工作目录中未命名包中的断言.
  • className
    启用或禁用命名类中的断言

例如,以下命令运行程序BatTutor,仅在包com.wombat.fruitbat及其子包中启用断言:

java -ea:com.wombat.fruitbat... BatTutor

您可以为所有包启用断言,然后为某些包禁用它们.或者 - 禁用所有软件包,然后仅为其中一些软件包启用.