有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当在断言中调用函数时,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) 个答案

  1. # 1 楼答案

    默认情况下,断言在运行时被禁用

    也许调试JVM没有启用断言

    要启用断言,请为NetBeans调试JVM参数指定-enableassertions(或-ea)开关。即使断言被编译成字节码,没有这个开关它们也不会执行

    详见this link