问题描述
public class Main {
public static void main(String args[]) {
sumArray(8);
}
public static int sumArray(int nums){
assert nums == 5;
return nums;
}
}
我只是想知道,当我传递一个不等于5的数字时,为什么编译器不抛出任何错误,因为我断言nums
等于5?
解决方法
如果程序在启用断言的情况下运行,则在运行时中检查条件。如果条件为假,则Java运行时系统将抛出AssertionError
。
为了向后兼容,JVM默认情况下禁用断言验证。必须使用-enableassertions
命令行参数或其简写-ea