Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  java  >  正文 JML起步---使用JML 改进你的Java程序(4)

JML起步---使用JML 改进你的Java程序(4)

发布时间:2018-12-08   编辑:www.jquerycn.cn
jquery中文网为您提供JML起步---使用JML 改进你的Java程序(4)等资源,欢迎您收藏本站,我们将为您提供最新的JML起步---使用JML 改进你的Java程序(4)资源

JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">exceptional_behavior<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">语句。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> </P>

<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> 

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">到目前,我们的行为规范还是以<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">public normal_behavior<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">打头的。这里<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">normal_behavior<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">关键字表示这是一个正常行为,方法不会抛出任何异常。使用<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">public exceptional_behavior<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">标记可以用来描述抛出异常的行为。下面的代码段显示了类<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">PriorityQueue<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">中<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">peek()<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">方法的行为规范中的异常部分:</P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> </P>

JML <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">用如下方式解释一个<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">signal <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">语句:如果有一个类型为<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">E<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的异常抛出的话,就检查是否为<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">R<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">真。如果是,就执行既定规范;否则,抛出一个<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">unchecked exception<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">(译者注:<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">unchecked exception<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">又叫做<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">RuntimeException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">,关于这两个概念,请参考<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">语言中关于异常的描述),用以表示我们的程序代码违背了<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">exceptional_behavior<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">规范的要求。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> </P>

<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> 

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">上面<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">peek()<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">方法中的<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">signals<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">语句的意思是如果队列为空,就抛出一个<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常。如果<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">peek()<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">方法在运行中抛出不是<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的其它异常的话,那么<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">就会把这当成一个错误,因为<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">e instanceof NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">不是<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">true<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。如果你既想处理<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常又想处理其它运行期异常,我们可以修改上面的<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">signals<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">语句,改为<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">signals (NoSuchElementException e) true; <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。这个意思是说,如果<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">peek()<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">方法抛出一个<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常的话,那条件<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">true<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">必须为真,而<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">true<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">是一个常量,总是可以满足条件,所以对于<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常的处理可以正常进行。不过我们这里并没有提及关于其它异常的信息,而<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">peek()<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">方法可以抛出它的签名(译者注:方法的签名是指,方法声明的各个部分,具体来说,是方法名称、参数类型、返回类型和抛出异常的总称)允许的任何异常。它的签名说它可以抛出<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常,这就意味着它既可以抛出<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常,又可以抛出<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">RuntimeException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。</P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> </P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">如果队列中存在一些元素而且当我们调用<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">peek()<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">方法时还是抛出一个<span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">NoSuchElementException<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">异常(或者其他异常),<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">运行期断言检查就会抛出一个<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">unchecked exception<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">,这表示正常的后置条件失败。</P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> </P>

JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的概念,说明了它对面向对象系统的分析和设计的贡献,通过实例演示了如何在<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">程序中使用<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">标记。你可以从下面所列的资源中下载本文中所使用的完整的代码,还可以从中找到更多的关于<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的信息。</P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> </P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">你可以使用开源的<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">编译器来编译你含有<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">标记的代码,所生成的类文件会在运行时自动检查<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">规范。如果你的程序没有实现规范中规定的事情,<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">就会抛出一个<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">unchecked exception <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">来说明你的程序违背了哪一条规范。这可以帮助我们捕获程序中的<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">bug<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">,而且能保证我们的代码与文档(<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">格式的文档)高度一致。</P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> </P>

<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">运行期断言检查编译器是第一个<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">工具,其他相关工具还有<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLdoc<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">和<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLunit<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">等等。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLdoc<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">与<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Javadoc<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">工具相似,不同的是它在生成的<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">HTML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">格式文档中包含<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">规范;<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLunit<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">可以成生一个<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">类文件测试的框架,它可以让你很方便地使用<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JUnit<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">工具测试含有<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">标记的<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">代码。你还可以从下面所列的资源中找到其他关于<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">各个方面的相关内容。</P>

<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> </P>

<i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">在此请允许我向</i><i><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Gary Leavens </i><i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">和</i><i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <span lang=EN-US>Yoonsik Cheon</I><i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">表示深深的谢意,是他们帮我解决了一部分关于</i><i><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML</i><i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的疑问并且审阅了你所看到的这篇文章。</i><i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> </i></P>

<i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"></i><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> 

<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">资源<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <o:p></o:p>

<ul type=disc><li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">下载本文中所用的<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML.zip"><span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><u>源代码</u></A> <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Sourceforge<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">是<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLspecs/"><u><span style="COLOR: #006699; mso-bidi-font-size: 12.0pt">JML<span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">规范</U></A><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">、开源<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">工具如<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">编译器、<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLdoc<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">、<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JMLunit<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">以及相关信息的主页。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">PriorityQueue<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">接口和<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <span lang=EN-US style="FONT-SIZE: 8.5pt; FONT-FAMILY: Courier; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">BinaryHeap<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">类是开源项目<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <span lang=EN-US><u><span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">雅加达通用集合组件(<span style="COLOR: #006699; mso-bidi-font-size: 12.0pt">JCCC<span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">)</U><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的一部分。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Gary T. Leavens<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">、<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Albert L. Baker<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">和<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Clyde Ruby<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> "JML/prelimdesign/prelimdesign_toc.html"><u><span style="COLOR: #006699; mso-bidi-font-size: 12.0pt">JML<span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">设计起步</U></A>" (<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">爱荷华州立大学计算机科学系,<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">2003<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">年<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">1<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">月<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">) <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">是对<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">的更为详细地介绍。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Bertrand Meyer<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">在<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><i><span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><u>面向对象软件构造,第二版</u></i><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">一书中关于通过契约(<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">JML<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">最基本的概念)进行设计的讨论<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">(Prentice Hall, 1997)<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <o:p></o:p><li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Granville Miller<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">在介绍面向对象系统建模中关于<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> <span lang=EN-US>Java/library/j-jmodcol.html"><u><i><span style="COLOR: #006699; mso-bidi-font-size: 12.0pt">Java</i><i><span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">建模</i></u></A> <span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">部分(<i><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">developerWorks</i><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">, 2002<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">)。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Eric Allen<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">在<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">"Java/library/j-diag0723.html"><span style="COLOR: #006699; mso-bidi-font-size: 12.0pt"><u>Diagnosing Java code: Assertions and temporal logic in Java programming</u></A>" (<i>developerWorks</i>, July 2002)<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">一书中讨论了一些断言检查限制的问题。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 12pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Kyle Brown<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">在<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">"Java/library/j-sdao/"><span style="COLOR: #006699; mso-bidi-font-size: 12.0pt"><u>A stepped approach to J2EE testing with SDAO</u></A>" (<i>developerWorks</i>, March 2003)<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">一文中讨论了如何把模拟数据对象与分层测试联合起来。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p> <li class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; tab-stops: list 36.0pt; mso-list: l0 level1 lfo2"><span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java<span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">程序设计的各个方面的信息请参考<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java/"><u><span style="COLOR: #006699; mso-bidi-font-size: 12.0pt">IBM developerWorks Java<span style="COLOR: #006699; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">专区</U></A><span style="FONT-SIZE: 9.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt">。<span lang=EN-US style="FONT-SIZE: 9.5pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><o:p></o:p></LI></UL>

<span lang=EN-US><o:p> </FONT></o:p>

<span lang=EN-US><o:p><完></FONT></o:p>

<span lang=EN-US><o:p></o:p> 

<span lang=EN-US><o:p>其它部分请参考:</FONT></o:p>

<span lang=EN-US><o:p>http://www.111cn.net/develop/read_article.asp?id=19198</FONT> JML起步---使用JML 改进你的Java程序(1)
</FONT>http://www.111cn.net/develop/read_article.asp?id=19199</FONT> JML起步---使用JML 改进你的Java程序(2)
</FONT>http://www.111cn.net/develop/read_article.asp?id=19200</FONT> JML起步---使用JML 改进你的Java程序(3)
</FONT></o:p>


</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li></li></li></li></li></li></li></li>
[关闭]