Groovy神奇的NullObject
在这篇文章里,我将向你展示Java和Groovy中 让我们从下面这行代码开始: Object o = null 这条语句在Java和Groovy下都可以运行(只是在Java下需要在行尾加一个 然而,它们是有略微的区别的。 在Java中, 在Groovy中, import org.codehaus.groovy.runtime.NullObject assert NullObject == null.getClass() assert true == null.equals(null) assert false == null.asBoolean() assert "null!" == null + "!" assert false == null.iterator().hasNext() 可以看出, 有趣的是,我在groovy的官方文档没有找到任何NullObject的信息。在Differences from Java nor和Groovy’s Null Object Pattern,也没有提到。 很难找到实用案例来说明NullObject,不过,你可以创建你自己的NullObject实例。 Class c = null.getClass() NullObject myNull = c.newInstance() 请注意下面,只有equals()方法只有在你传NullObject的默认实例时才返回true。所以,你的NullObject实例只会返回false。 assert false == myNull.equals(myNull) assert true == myNull.equals(null) 你也可以通过修改NullObject的元信息以添加你自己的方法: NullObject.metaClass.myMethod = { println "I am null" } null.myMethod() PS:事实上,从 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |