java基础知识--断言
断言
在网上找了很多关于断言的博客知识点总结,加上java核心技术书籍上内容,整理出这篇学习博客
这篇博客讲的很详细,见http://blog.csdn.net/silentbalanceyh/article/details/4564884内容
1、断言的概念
断言机制允许在测试期间向代码中插入一些检査语句 。 当代码发布时, 这些插人的检测语句将会被自动地移走。
assertion(断言)是Java1.4引入的一个新特性,该特性的引入的目的是为了辅助开发人员调试和测试,是一种比较常用的调试、测试方案。
assertion在软件开发过程中是一种比较常用的调试方法;不仅仅如此,使用assertion可以在开发过程中证明程序的正确性,只是这种用法会对系统的整体设计存在很大的挑战
,而且目前很少投入到实用里面,所以一般情况下使用assertion的目的是为了调试和测试。
Java 语言引人了关键字 assert 。
这个关键字有两种形式 :
assert 条件 ;
assert 条件 : 表达式 ;
这两种形式都会对条件进行检测 , 如果结果为 false , 则抛出一个 AssertionError 异常。
·在第二种形式中, 表达式将被传人 AssertionError 的构造器 , 并转换成一个消息字符串。
示例:
1 /**
2 *断言使用的概念说明代码
3 **/
4 public class AssertionDriver {
5 public static void main(String args[]){
6 Employee employee = new Employee();
7 employee.setName("Tian lang");
8 employee.setEmail("2433758932@qq.com");
9 businessProcess(employee);
10 }
11
12 public static void businessProcess(Employee employee){
13 try{
14 assert employee.getName() != null &&
15 employee.getEmail() != null &&
16 employee.getPassword() != null:
17 employee;
18 }catch(AssertionError error){
19 System.out.println(error);
20 }
21 }
22 }
23
24 class Employee{
25 private String name;
26 private String email;
27 private String password;
28 public String getName() {
29 return name;
30 }
31 public void setName(String name) {
32 this.name = name;
33 }
34 public String getEmail() {
35 return email;
36 }
37 public void setEmail(String email) {
38 this.email = email;
39 }
40 public String getPassword() {
41 return password;
42 }
43 public void setPassword(String password) {
44 this.password = password;
45 }
46 @Override
47 public String toString(){
48 return "/nName:" + name + "/n" + "Email:" + email + "/n" + "Password:" + password;
49 }
50 }
上边代码段使用了第二种表达式的方式,但是这里复杂的地方在于表达式2不是一个字符串,而是定义的Employee类的一个对象的实例,也就是说这里表达式2是一个Object实例,然后编译该代码,运行的时候打开断言,就可以得到下边的输出:
java.lang.AssertionError:
Name:Tian lang
Email:2433758932@qq.com
Password:null
2、在eclipse中如何使用断言
(一)首先明确:
java断言Assert是jdk1.4引入的。
jvm 断言默认是关闭的。
断言只适用于复杂的调试过程。
断言一般用于程序执行结果的判断,千万不要让断言处理业务流程。
(二)判断eclipse是否开启了断言,
代码如下:
1 public class AssertTest {
2
3 public static void main(String[] args) {
4 boolean isOpen = false;
5 assert isOpen=true; //如果开启了断言,会将isOpen的值改为true
6 System.out.println(isOpen);//打印是否开启了断言
7 }
8 }
执行上面代码,如果打印 true说明已经启用了断言,如果为 false 则没有启用断言。
如果没有启用断言,则按按照下面方法开启断言。
(三)eclipse中开启断言选择菜单:
Run ---> Run Configurations...---> 选择 Arguments 选项卡
在 VM arguments 文本框中输入: -ea 注意:中间没有空格,如果输入 -da 表示禁止断言。
然后关闭该窗口,然后保存就开启了断言。
3、关于断言的思考
补充,具体断言可以查看开头目录中的博客,更为详细具体!