2017-01-30 55 views
5

是否可以啓用每個包的java斷言?我想在我的代碼中使用斷言,但是與我的代碼一起運行的其中一件事打破了一些不相關的斷言,並且作者拒絕修復它(至少現在是這樣,並且不是嚴重錯誤)。啓用每個包的斷言

+0

我有點驚訝,我找不到現有的重複;) –

回答

5

這是可能的,參見http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html#enable-disable

啓用和禁用斷言

要在各種粒度啓用斷言,可使用 -enableassertions,或-ea,開關。要禁用各種粒度的斷言,請使用-disableassertions或-da,switch。 您指定 與您所提供的開關參數的粒度:

  • 的packageName ...
    啓用或禁用命名 包和任何子包的斷言。
  • ...
    在當前的 工作目錄的未命名包中啓用或禁用聲明。
  • 的className
    啓用或在已命名的類

對於 示例禁用斷言,與僅包com.wombat.fruitbat及其 啓用 斷言以下命令運行一個程序,BatTutor,子包:

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

您可以爲所有軟件包啓用斷言,然後爲某些軟件包禁用它們。否則 - 禁用所有軟件包,然後僅啓用其中一些軟件包。