易截截图软件、单文件、免安装、纯绿色、仅160KB

Assert 在Java和Groovy中的区别

对于防御性编程而言,assert一直都是非常重要的工具。但对于熟悉-ea参数的Java程序员而言,当他们看到所有Groovy断言无论是否有-ea都照样执行时一定会非常困惑。
事实上,Groovy的断言是无条件开启的!
对此,开发人员Roshan Dawrani做了如下解释:(原文)
The JDK documentation has a long chapter on assertions that talks about the disabling feature for assertions and its impact on compiling, starting the VM, and resulting design issues. Although this is fine and the design rationale behind Java assertions is clear, we feel the disabling feature is the
biggest stumbling block for using assertions in Java. You can never be sure that your assertions are really executed.
在Core Java(或者是TIJ?记不清了)里,作者提到assertion类似“在海边开赛艇要带好你的卡通救生圈;如果船已经在大海中央,就把救生圈扔掉好了”。不过,在Groovy中,显然这种防御措施会一直跟随你到大海的任意角落(希望不是海底)。
PS:如果仔细看看Groovy断言的输出,你一定会意识到它对于debug是多么有用:
1: def xml = new XmlParser().parseText("x")
2: assert "y" == xml.text()
3: -----
4: output:
5:
6: assert "y" == xml.text()
7: | | |
8: | | x
9: | test[attributes={}; value=[x]]
10: false
11:
******
Quote of the day:
I didn't really say everything I said. - Yogi Berra


相关文档:

java 多态

三道JAVA基础题
题目(1)
class A {
   public int i = 10;
}
class B extends A{
   public int i = 20;
}
public class Test{
   public static void main(String&nbs ......

JAVA 连接 SQLServer 2000.

JAVA 连接 SQLServer 2000 所需要的三个JAR包。
http://download.csdn.net/source/2283940
----------------
Code:
------------------------
  Connection conn = null;
  Statement sta = null;
  try {
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServer ......

用java写的一个斗地主发牌小程序

package bag;
import java.util.*;
public class Dou {
 /*
  * 生成扑克牌
  */
 public String[] puke() {
  String[] s1 = { "黑桃", "红桃", "梅花", "方片" };
  String[] s2 = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J",
     ......

利用JAVA语言实现支持视频点播的WEB服务器

一.项目简介:
  JAVA语言是一种可移植的,简单的,健壮的嵌入式语言。并且对网络,数据库有很好的支持,基于JAVA语言的这种特性可以十分容易地建立一个小型INTERNET服务器。
  本项目中,作者用JAVA语言编写了一个WEB微型服务器,对简单的HTTP请求进行响应,并通过后端数据库对用户的查询进行处理,从而动态地返回HT ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号