The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
在Java7之前的“try/finally”场景中有一个非常典型的错误,在许多代码审查中我都经常看到。我必须写一下关于它。Java7引入了一种解决方案,但它并没有涵盖所有情况。有时我们需要处理非“AutoCloseable”资源。请正确地打开和关闭它们。以下是示例(假设我们使用的是Java 6):
我已经写过关于null
及其邪恶本质的文章。现在,它又出现了。如果你只是遵循“永远不要使用NULL”的规则,这段代码将需要立即重构。它的正确版本将如下所示:
现在没有null
了,非常简洁,不是吗?
在某些情况下,打开资源本身会抛出IOException
,我们不能将其放在try/catch
之外。在这种情况下,我们必须有两个try/catch
块:
但是绝对不应该有null
。
在Java代码中出现null
是代码质量不佳的明显迹象。如果必须使用null
,那么肯定有问题。唯一正当使用null
的地方是在使用第三方API或JDK时。它们有时可能返回null
,因为… 嗯,它们的设计很糟糕。我们别无选择,只能使用if(x==null)
。但就仅限于此。其他地方都不适合使用null
。
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-17 at 16:00