我希望较少计算密集的断言始终保持开启状态,并禁用计算密集度更高的断言。一个实际应用场景是当我们将代码移动到生产环境时(根据《实用程序员》的建议,这是处理断言的建议方式)。
如何控制断言是最佳方法?(请注意,我已经在VM变量中使用“-ea”启用了断言。)
一个简单的例子:
如何控制断言是最佳方法?(请注意,我已经在VM变量中使用“-ea”启用了断言。)
一个简单的例子:
/**
*
* @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中)吗?
在“常量”类中定义常量变量是否更好?
还有其他我没有想到的方法吗?
提前感谢。
assert i < 7 : "i不小于7";
一个更高计算强度的例子是需要更多处理的东西,比如检查列表中每个值的平均值:assert avg(listOfIntegers) < 7 : "平均值不小于7。";
理想情况下,在生产环境中关闭高计算强度的断言,并保留较小的断言。 - mtical