【发布时间】:2015-07-16 20:56:00
【问题描述】:
我知道调用equals 方法优于使用== 运算符(请参阅this question)。如果两个字符串都为空或表示相同的字符串,我希望两个字符串比较相等。不幸的是,如果字符串为null,equals 方法将抛出NPE。我的代码目前是:
boolean equals(String s1, String s2) {
if (s1 == null && s2 == null) {
return true;
}
if (s1 == null || s2 == null) {
return false;
}
return s1.equals(s2);
}
这很不雅。执行此测试的正确方法是什么?
【问题讨论】:
-
怎么不优雅?还有什么方法可以确定?
-
在 commons.lang 中使用
StringUtils.equals(s1, s2) -
@fge 我一直不明白为什么人们将答案发布为 cmets。不过我想知道,愿意分享你的推理吗?
-
@Pureferret 没有特别的原因,真的......当答案真的只是对现有方法的引用时出于习惯:p
-
@fge 在我看来,它要么最终成为 a) 和答案,要么 b) 作为评论丢失,没有进一步(有用的)解释。