public class AssertTest{
  static int i = 10;
  public static void main(String args[]){
     i = i*2;
     try{
        assert isValid() : i = i/4;
     }catch(AssertionError ignore){}
     System.out.println("i = " +i);
  }
  public static boolean isValid(){
    i = i * 2;
    return false;
  }
}
结果输出:i = 20;
可是我怎么也得不到这个结果,请大家帮忙,isValid()是否执行? 

解决方案 »

  1.   

    编译和运行的时候
    javac 
       java
    好像都要添加一些参数才可以的
      

  2.   

    奇怪呀,既然要断言,怎么还放在try里面?没见过这么用断言的
    javac -source 1.4
    java -ea 
      

  3.   

    呵呵,不是需要编译时命令,这些我当然知道,我想问,到底isValid()是否执行,结果为什么是i = 20;
    再请教大家了,谢谢!
      

  4.   

    输出结果i=10
    你运行的时候没有加 -ea参数,断言是被忽略的