我只是想知道是否有更好的方法来做到这一点.我觉得它可能效率低下.问题是出于DB的原因我需要比较有时可能为null的字符串.
public static boolean compareStrings(String str1, String str2){
if(str1 == null && str2 == null) return true;
if(str1 != null && str2 != null){
if(str1.equals(str2))
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
Tay*_*mon 47
通常的习惯是这样的:
return (str1 == null ? str2 == null : str1.equals(str2));
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 30
你说这些可能来自数据库.那时,与数据库查询的成本相比,围绕一些无效测试的任何低效率都是无关紧要的.我会专注于可读性.
boolean equal = Objects.equal(a, b);
Run Code Online (Sandbox Code Playgroud)
我希望按照Taymon的代码来实现 - 基本上 - 但是把它放在一个地方很好.
编辑:对于Java 7+,您不需要Guava.你可以使用java.util.Objects.equal(a, b)
.