Java 区别于;字符串";。equals(value)还是value.equals(字符串)?
可能重复:Java 区别于;字符串";。equals(value)还是value.equals(字符串)?,java,string,equals,Java,String,Equals,可能重复: 为什么我在一些java编码中看到的是“要比较的字符串”.equals(输入值),而不是输入值.equals(“要比较的字符串”) 利与弊是什么 谢谢“要比较的字符串”。等于(输入值)避免了空检查的需要 如果输入值为null,另一个可能抛出NPW。事实上,许多IDE都警告您这一点,并允许您在不键入任何内容的情况下更改代码。结果应该不会有所不同 但从技术上讲,他们可能会 在第一种情况下,将从String类调用equals()和hashCode()方法 在第二种情况下,将从input_v
为什么我在一些java编码中看到的是
“要比较的字符串”.equals(输入值)
,而不是输入值.equals(“要比较的字符串”)
利与弊是什么
谢谢“要比较的字符串”。等于(输入值)避免了空检查的需要
如果输入值为null,另一个可能抛出NPW。事实上,许多IDE都警告您这一点,并允许您在不键入任何内容的情况下更改代码。结果应该不会有所不同 但从技术上讲,他们可能会 在第一种情况下,将从String类调用equals()和hashCode()方法 在第二种情况下,将从input_value类调用equals()和hashCode()方法 此外,如果输入值为null,在第一种情况下,结果将始终为false,其中与第二种情况一样,您将得到一个NullPointerException
这是不够的信息,说哪一个是首选。这取决于你的目的 在第一种情况下,可以避免NullPointerException
在第二种情况下,您可能(如果您为输入值定义了类)可以更好地控制如何定义对象的相等性(equals()和hashCode()方法)过了一段时间才得到最初的问题:对不起,您使用了什么进行搜索?我不能。好吧,这就是懒惰。性能如何?这会创建一个不必要的临时字符串对象吗?还是两者都一样?