是否应该使用null?

时间:2018-02-13 16:54:15

标签: java null coding-style

我最近阅读了一些关于干净代码重构的书籍,特别是前者倾向于建议读者不要回复echo "<td>".$backupArray[0]['{$row['Name']}']."</td>"; echo "<td>".$backupArray[1]['{$row['Name']}']."</td>"; echo "<td>".$backupArray[2]['{$row['Name']}']."</td>"; ,也不将它传递给任何函数(外来的,(为你)不可变代码,例如官方库或外部框架,不包括在内)。例如,参见 Robert C. Martin - 清洁代码:敏捷软件工艺手册,第110-112页(第6版)。

根据我的经验,这通常是有道理的。您通常可以抛出异常,返回空列表或数组,或使用一些创造性的解决方案来避免null的可能性,而不是null。当然,你可能必须抓住自己的例外情况 - 但这仍然比通用NullPointerException更具表现力。

然后我想到你是否应该完全避免NullPointerException - 即不只是在函数调用或返回语句中,而是到处。从我所知,这应该是可能和合理的 但是 - 仍然是学生 - 我不完全确定该假设/指南是否总是正确的。因此我的问题是:

您是否应该不惜一切代价避免使用null?或者是否存在使用它的情况将是更实际的解决方案,尽管存在null的风险?忽略您必须处理无法影响的外国代码的情况,例如官方图书馆。

3 个答案:

答案 0 :(得分:5)

我认为通常你应该避免使用它,但我认为它可以用于内存管理。例如,您可能希望将一些短期对象设置为null,以便向垃圾收集器发送信号,告知您要清理内存。

答案 1 :(得分:2)

它更基于意见,但由于语言规范允许null的使用以及返回null的本机方法的存在,例如HashMap#get(Object)完全避免它是不可行的。

答案 2 :(得分:1)

有时它用于初始化可变对象....