为什么断言在不应该通过所有测试用例的情况下

问题描述

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

启用它们

参考:https://www.baeldung.com/java-assert