繁体   English   中英

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

[英]Which is correct usage of equals method in java?

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

"Delta".equals(type) 

要么

type.equals("Delta")

通常

"Delta".equals(type)

是有利的,因为不可能抛出NullPointerException 也就是说,另一种方式并非“不正确”,因为它与Java语言规范没有错误; 但是, 如果 (type == null)为true,它很容易失败。

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

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

第一个版本是“更安全”,第二个“读取”更自然

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM