Groovy 中 Null Object 类的用途是什么?

2024-05-02

我已经使用 Groovy 五个小时了,刚刚发现Groovy NullObject http://groovy.codehaus.org/api/index.html?org/codehaus/groovy/runtime/NullObject.html。我读了《Groovy》空对象模式的解释 http://groovy.codehaus.org/Null+Object+Pattern,但它并没有触及NullObject直接上课;是NullObject只是为了成为诸如此类的基类NullTree and NullJob?我得到了一个NullObject回到一些期望的代码String,并且它会像“常规”一样导致失败null将有。

那么,这样做的目的是什么NullObject?或者,换句话来说,价值是什么NullObject提供“常规”null不是吗?


其目的是有一个null对象而不是一个null关键词。

在普通Java中null是一个特殊的关键字,它用于表示引用未附加到任何对象。这工作正常,但它不能处理您尝试使用 a 执行某些操作的情况null参考。

Since a null引用不是一个对象,你不能对它做任何事情,Java 会抛出一个NullPointerException。相反,如果你有NullObject你的参考将指向这个而不是指向任何东西..当然这个NullObject无法执行任何操作,当您尝试调用它的方法时,不会发生任何事情,但不会抛出异常,因为尽管如此NullObject意味着“不存在任何对象”,它被实现为具有明显后果的对象,以避免这些情况。

这样 groovy 就可以处理类似的事情object?.methodName()。如果对象是nullgroovy 将使用NullObject这样这个隐式检查就会做类似的事情(也许这不是实际的实现,只是为了给你一个想法)

if (object instanceof NullObject)
  return new NullObject();
else
  return object.someMethod();

总之,需要克服这样一个事实:使用nullJava 中的引用总是会导致NullPointerException.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Groovy 中 Null Object 类的用途是什么? 的相关文章

随机推荐