简单的问题是正确的使用方法equals
,也提供答案背后的推理。
"Delta".equals(type)
或者
type.equals("Delta")
一般来说
"Delta".equals(type)
受到青睐,因为不可能抛出NullPointerException
. 也就是说,另一种方式并非“不正确”,因为它与 Java 语言规范没有错误;但是,如果 (type == null)
为真,它很容易失败。
术语“最佳实践”用于区分更好的选择和正确但较差的选择。在这种情况下"Delta".equals(type)
是一种最佳实践,以避免处理空指针引用所需的不必要的保护代码。
两者都是正确的。第一个在绝对非空的字符串上调用 compare 方法,所以它不会抛出 NullPointerException,第二个可能 iftype
为 null
第一个版本“更安全”,第二个“阅读”更自然