assert(断言)杂谈

assertion(断言)是jdk1.4才开始支持的新功能,主要在开发和测试时开启。在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,assert将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

测试:

(在main方法中写入以下代码)

int i=0;
for(i=0;i<5;i++){
   System.out.println(i);
}
--i;
assert i==5;

 在eclipse中运行这段代码发现没什么反应,查询资料才知道eclipse中assert默认是关闭的,开启方法如下:

1.Run > Run Configurations > Arguments页签 > VM arguments文本框中加上断言开启的标志:-enableassertions 或者-ea 就可以了,如果是-da就是关闭assert;
2.在myEclipse中,Windows -> Preferences ->Java ->Installed JREs ->点击正使用的JDK ->Edit ->Default VM Arguments文本框中输入:-ea

 

 

在MyEclipse中发现assert编译不过去,测试了下网络上给的方法发现还是不行,暂未解决。网络上的方法如下:

 

MyEclipse 断言(assert)设置在MyEclipse中启动assert(断言)依次进入在MyEclipse8的菜单项Window -> Preferences -> Java -> Compiler -> Compliance and Classfiles
断言在java的JDK1.4版本中添加进来,JVM默认assertion的功能是关闭的.
这个设置告诉编译器识别和允许断言语句,但是还没有开启断言。
接下来,进入菜单项Window -> Preferences -> Java -> Compiler -> Compliance and Classfiles,并且设置:
Compiler Compliance Level: 1.6
Use default compliance settings: unchecked
Generated .class files compatibility: 1.6
Source compatibility: 1.6
Disallow identifiers called 'assert': Error
最后在Run -> Run... -> Arguments菜单项的VM arguments区域,加上断言开启的标志
-enableassertions 或者-ea 就可以了或命令行编绎执行了

 

 

 

你可能感兴趣的:(assert,断言,assertion)