在重构过程中,我注意到任何事情(因为它继承自Object)都可以使用equals()
方法进行比较,但我想调用的方法只有比较字符串,因为如果我比较不同类型的对象,这会让编译器阻止我。
Java中有任何内置方法可以做到这一点吗?
答案 0 :(得分:1)
如果您需要返回boolean
的内容,则可以编写自己的静态方法,该方法需要两个String
个实例并在后台使用.compareTo()
或.equals()
。如果签名需要String
s,编译器将强制执行它。
public static boolean compareStrings(String a, String b) {
return a.equals(b);
}
如果NullPointerException
为a
,则会null
,这可能是您想要的,也可能不是。{1}}这很容易进行检查。
答案 1 :(得分:1)
@Julio Rodrigues你可以使用方法contentEquals()
string1.contentEquals(string2)
它区分大小写,并且它的仅存在于String类中(不是从对象继承)。
答案 2 :(得分:0)
使用 FindBugs ,静态代码分析,非常简单; IDE插件,带有独立的GUI应用程序。这将标志着这些有问题的用途和其他用途。
这是一种更好的射击方法:可重复并找到几个问题。绝对有趣。