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