Groovy中NullObject类的目的是什么?
我一直在使用Groovy五个小时,刚刚遇到了
Groovy
NullObject .我读了Groovy
explanation of the Null Object Pattern,但它没有直接触及NullObject类; NullObject只是为了像NullTree和NullJob这样的东西?我在一些需要String的代码中得到一个NullObject,并且它导致失败,就像“常规”null一样.
那么,NullObject的目的是什么?或者,换句话说,NullObject提供的“常规”null不具有什么价值? 解决方法
其目的是使用null对象而不是null关键字.
在普通的Java中,null是一个特殊的关键字,它用于表示引用没有附加到任何对象..这样可以正常工作,但它不会处理您尝试使用空引用执行某些操作的情况. 由于null引用不是对象,因此您无法对其执行任何操作,Java将抛出NullPointerException.相反,如果你有一个NullObject,你的引用将指向这一个而不是什么…当然这个NullObject无法做任何事情,当你试图调用一个方法时,什么都不会发生但是没有异常将被抛出,因为通过NullObject意味着“没有任何对象”它被实现为一个具有明显结果的对象,以避免这些情况. 那么groovy可以处理像object这样的东西?.methodName().如果object为null,则groovy将使用NullObject,以便此隐式检查将执行类似的操作(可能这不是实际的实现,只是为了给您提示) if (object instanceof NullObject) return new NullObject(); else return object.someMethod(); 总之,需要克服在Java中使用空引用将始终导致NullPointerException的事实. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |