哪个是java中equals方法的正确用法?

时间:2012-04-17 16:01:27

标签: java

简单的问题,这是使用equals的正确方法,也提供了答案背后的推理。

"Delta".equals(type) 

type.equals("Delta")

2 个答案:

答案 0 :(得分:8)

一般

"Delta".equals(type)

受到青睐,因为不可能抛出NullPointerException。也就是说,另一种方式不是"不正确"因为它与Java语言规范没有错误;但是,如果 (type == null)为真,那么它很容易失败

术语"最佳实践"用于区分更好的选择与正确但劣等的选择。在这种情况下,"Delta".equals(type)是最佳实践,以避免处理空指针引用所需的不必要的保护代码。

答案 1 :(得分:1)

两者都是正确的。第一个在明确非空字符串上调用compare方法,因此它不会抛出NullPointerException,如果type为空则第二个可能会抛出

第一个版本更安全"第二个"读取"更自然地