易截截图软件、单文件、免安装、纯绿色、仅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经典基础问题之 抽象类与接口

一、抽象类注意事项:
1,抽象类中可以用0+个抽象方法。
2,有抽象方法的的类必须是抽象类。
3,抽象类派生的非抽象子类必须实现抽象类中定义的所有抽象方法。
4,抽象类不能创建对象。
5,abstract 不能与final并列修饰同一个类
6,abstract不能与private,static ,final,native并列修饰同一方法。
package com.wens ......

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 jdbc Oracle error: ORA 12505

更改oracle Listener 配置:D:\Oracle\moon\product\11.1.0\db_1\NETWORK\ADMIN  目录之下:Listener.ora文件进行配置:
# listener.ora Network Configuration File: d:\Oracle\moon\product\11.1.0\db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SI ......

Java 面向对象的特点

1.1 面向对象的基本概念
  面向对象的基本思想
  面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行
程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号