当在断言中调用函数时,Java无法进入函数
因此,我注意到,在调试Netbeans Java应用程序时,当在断言函数中使用函数调用时,不能在该函数中点击断点或进入该函数
起初,我认为这与使用重写函数和我的重写函数没有被调用有关,但我确认这不是正在发生的事情。它仍然会被呼叫,但无法进入
以下是我尝试过的片段:
public class Example
{
public static boolean blah()
{
System.out.println("Executing"); //**Breakpoint here
return true;
}
public static void main(String[] args)
{
assert(blah()); //Cannot step into or hit breakpoint on this line.
blah(); //Can here.
}
}
有人知道为什么这样不行吗
# 1 楼答案
默认情况下,断言在运行时被禁用
也许调试JVM没有启用断言
要启用断言,请为NetBeans调试JVM参数指定
-enableassertions
(或-ea
)开关。即使断言被编译成字节码,没有这个开关它们也不会执行详见this link