本人只学过在JUNIT使用assert测试。
在复习OCJP考试中,遇到JAVA代码中直接使用assert。请各位给扫扫盲,我有如下几个问题:1. assert是一个类么?它如何构造对象呢?怎么没看到new出来? 查了查API没找到。
2. 如何在eclipse里,启用EA使之抛assertException?贴上简单的模拟代码,供高人点评public class Cloned {
public static void main(String[] args) {
System.out.println("classes");
assert(Integer.parseInt(args[0]) > 0);
}
}Eclipse;assert

解决方案 »

  1.   

    自己补充一下,供初学者参考:
    1) assert可以理解成关键字,通过assert false(可以返回boolean值的表达式),或者assert(false);能够抛出AssertError;
    2) eclipse运行时,配置Run Configuration, 在(x)=Arguments下面,将args实参写到Program Arguments, 将 -ea写到VM arguments传给虚拟机,如下模拟代码,运行时,将产生AssertError;public class AssertTest extends AssertParent {
    public static void main(String[] args) {
    new AssertTest().go(args);
    }

    void go(String[] args){
    if(args.length > 0) {
    makeNoise(args);
    }
    }
    }class AssertParent{
    static void makeNoise(String[] args){assert(Integer.parseInt(args[0]) > 0);}
    }输出为:
    Exception in thread "main" java.lang.AssertionError
    at com.ocjp.assertTest.AssertParent.makeNoise(AssertTest.java:19)
    at com.ocjp.assertTest.AssertTest.go(AssertTest.java:10)
    at com.ocjp.assertTest.AssertTest.main(AssertTest.java:5)