Java 中assert和静态导入的使用
最近一直在做测试,发现了一些JDK 1.5中的一些新的语法特性,在开发的时候确实省了不少时间,在此做简要的记录:
assert 的用法
assert expression1;
assert expression1:expression2;
如果expression1为true,则不抛出错误,程序正常运行,expression2也不会执行。
如果expression1为false,则抛出异常,程序中断跳出,expression2执行。
一般来说,不要在expression1、expression2中使用函数的返回值;
不要将其使用在public函数中检查输入参数,但可以用于private函数中检测输入参数。
public class AssertFoo { public static void main(String args[]) { // 断言1结果为true,则继续往下执行 assert true ; System. out .println( " 断言1没有问题,Go!" );
System. out .println( "\n-----------------\n" );
// 断言2结果为false,程序终止 assert false : " 断言失败,此表达式的信息将会在抛出异常的时候输出!" ; System. out .println( " 断言2没有问题,Go!" ); } } |
Assert 主要是用在程序的调试中,不能因为有了assert而影响了程序的正常运行,相反,如果去掉assert机制后,程序应该可以实现正常的功能,通过一个简单的例子来说明如何使用assert。
Assert 是在JDK 1.4中引入的新特性,编译的时候要使用java -source,执行的时候要使用java -ea。
在eclispse中执行的时候要配置run中的执行时所需要的参数,如图所示:
即在VM arguments中指定运行参数 -ea。
静态导入的使用
import static com.loojoy.assertdemo.StaticOperation.*; // 这是最重//要的 public class ClientConsole { public static void main(String[] args) { // assert 1 == 1; // System.out.println("Finished"); println (); } } |
通常静态方法在使用的时候需要类名.属性名或这是方法名。但是使用了静态导入之后就可以直接使用方法,而不需要再使用类名做前缀了。Let's drink code,看代码是最好的学习方式。
public class StaticOperation {
public static void println(){ System. out .println( " 这是一个静态导入方法 :) " ); }
}
|
在这里需要注意的就是静态方法的导入方式 import static 包名.类名.*,这种方式,否则会报错。