关于java断言的一个有关问题:其他类中的断言在public类中无法实现

关于java断言的一个问题:其他类中的断言在public类中无法实现?
问各位一个关于java断言的问题
这个程序(保存为CalorieCounter.java文件)


class A
{
    boolean fun(int i)
    {
    if(i>0)
    {
    try
    {     
     assert i<0:"i<0";
             System.out.println("111111111111111111111");
    }
    catch (AssertionError nfe)
            {
             System.out.println("2222222222222 "+nfe.getMessage());
            }
    
    return true;
    }
    else
    {
    try
    {     
     assert i>0:"i>0";
             System.out.println("3333333333333333333333");
    }
    catch (AssertionError nfe)
            {
             System.out.println("4444444444444 "+nfe.getMessage());
            }
    
    return false;
    }
    }

}


public class CalorieCounter
{

    public static void main(String[] arguments)
    {
A ca=new A();

try 
{
    assert ca.fun(10) : "7th fun(10) <0";
            System.out.println("55555555555555555555");
        }
        catch (AssertionError nfe)
        {
            System.out.println(" assert fun(10) <0 6666666666666666666 "+nfe.getMessage());
        }

try 
{
    assert ca.fun(-10);
            System.out.println("7777777777777777777777");
        }
        catch (AssertionError nfe)
        {
            System.out.println(" assert fun(-10) <0 8888888888888888888 "+nfe.getMessage());
        }

    }
}






运行的时候这样java -ea:A CalorieCounter
以此来触发A类中的断言
但是运行结果是
55555555555555555555
7777777777777777777777

为什么会导致A类中的fun函数无法调用???
请教各位

文章评论