我正在审查最佳实践手册和推荐编码java,我认为这是值得怀疑的。
推荐:
String variable;
"xx".equals(variable) // OK
variable.equals("xx") //Not recomended
因为可以防止出现不受控制的 NullPointerException
这是真的?
这是一种非常常见的技术,如果变量为空,它会导致测试返回 false,而不是抛出NullPointerException
。但我想我会有所不同,并说我不会将此视为您始终应该遵循的建议。
- 我绝对认为这是所有 Java 程序员都应该意识到的事情,因为它是一个常见的习惯用法。
- 这也是一种使代码更加简洁的有用技术(您可以同时处理 null 和 not null 情况)。
But:
- 它使您的代码更难阅读:“如果天空是蓝色的话……” https://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined/2430307#2430307
- 如果您刚刚检查了前一行的参数不为空,那么就没有必要。
- 如果您忘记测试 null 并且有人确实提供了您没有预料到的 null 参数,那么
NullPointerException
不一定是最坏的结果。假装一切正常并一直坚持到后来最终失败并不是更好的选择。快速失败是件好事。
我个人don't认为在所有情况下都应该需要使用此技术。我认为这应该留给程序员根据具体情况进行判断。重要的是确保您以适当的方式处理 null 情况,并且如何处理取决于具体情况。检查空值的正确处理可能是测试/代码审查指南的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)