应该使用零

  • 本文关键字: java null coding-style
  • 更新时间 :
  • 英文 :


我最近读过几本关于干净代码重构的书,尤其是前者倾向于建议读者都不返回null,也不将其传递到任何功能中(外国,(对您(不可变的代码,例如官方库或外部框架,排除在外(。例如,请参见 Robert C. Martin-清洁代码:敏捷软件手工艺手册,第110-112页(第六印刷(。

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

然后,我考虑了您是否应该完全避免null - 即不仅在函数呼叫或返回语句中,而是 everywhere 。据我所知,这应该既可能又合理。
但是 - 仍然是学生 - 我不确定该假设/准则是否总是正确的。因此我的问题:

您是否应该始终尝试避免以任何代价使用null?还是尽管有NullPointerExceptions的风险,但使用它的情况还是更实用的解决方案?忽略您必须处理无法影响的外国代码的情况,例如官方库。

我认为您通常应该避免使用它,但我认为它可以用于内存管理。例如,您可能需要将一些简短的生命对象设置为null,然后将它们与垃圾收集器发出信号。

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

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

相关内容

  • 没有找到相关文章

最新更新