首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2013-06-25 
关于java断言的一个问题:其他类中的断言在public类中无法实现?问各位一个关于java断言的问题这个程序(保存

关于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函数无法调用???
请教各位


[解决办法]

引用:
上条留言我都是这样执行的

运行的时候这样java -ea:A CalorieCounter

我也不知道文档是怎么说的 但是从测试列子来看的话 如果你不开启断言 那句断言是直接忽略的 你直接用调用函数 因为你开启了A类断言 所以断言是执行的 然后你没开启CalorieCounter断言 所有CalorieCounter类里的断言直接被忽略了 以至于A类的函数没执行
你可以试试java -ea:A -ea:CalorieCounter CalorieCounter

热点排行