什么时候null有用?

时间:2014-02-08 15:40:27

标签: java null garbage-collection

现在我们有了Guava的Optional和构建器模式。每本书/博客都说避免空值。在处理明确需要它的遗留代码或协议时,我们必须使用它们。但是,当它有用或者它是最佳选择时,还有其他用例吗?

1 个答案:

答案 0 :(得分:3)

对未初始化的变量很有用。它是否有用作为有效值是另一个问题,取决于您的编程模型。例如,如果您的模型中的目标是生成很少或没有垃圾,则Optional不是一个选项,null不会产生垃圾。

在极端情况下,您的目标可能是每天生产1 GB或每天1 GB的垃圾。这样您就可以在没有次要收藏的情况下运行一天或一周。

在“普通”Java编程中,缺少使用其中一个包装器可能是由于懒惰。这是一种更多的努力,因为我没有意识到收益(因为我从不打算将NPE编写到我的代码中)。有用的工具就像你的IDE为你填写这段代码一样。例如IntelliJ将告诉您是否有值null并且cn引入运行时检查。