計算量の少ないアサーションを常に有効にして、計算量の多いアサーションを無効にしたいと考えています。実際のユースケースは、コードを本番環境に移行する場合です (Pragmatic Programmer によると、これはアサーションを処理する方法として推奨されています)。
アサーションを制御するための最良の方法は何ですか? (注、「-ea」を使用して VM 変数でアサーションを既に有効にしています)。
簡単な例:
/**
*
* @precondition sizeOfList >= 2
*/
private ArrayList<Integer> createSortedList(int sizeOfList){
ArrayList<Integer> results = new ArrayList<Integer>();
for(int i = 0; i<sizeOfList; i++){
<algorithm to add sorted numbers to array>
}
if(<some_flag>)
assert results.get(0) < results.get(1) : "Results are not sorted.";
assert results.size() == sizeOfList : "Results-list size does not equal requested size.";
return results;
}
システム プロパティを使用して変数を制御するのが最善ですか? その場合、(Eclipse で) 特定のクラスだけでなく、プロジェクト全体に対してシステム プロパティを設定できますか?
「Constants」クラスで定義された定数変数を使用することをお勧めしますか?
私が考えていない他の方法はありますか?
前もって感謝します。