让我首先从一个示例代码开始......
String password = "";
if("PIRATE".equals(password)) {
// Do something
}
请参阅此处,字符串常量或文字(无论如何)“PIRATE”用于检查两个字符串的相等性。然而...
String password = "";
if(password.equals("PIRATE")) {
// Do something
}
这也与前面的代码完全一样。
现在,我看到很多第一种样式"STRING_LITERAL".equals(STRING_OBJECT),而 Java 人员发布代码。
所以我的问题是,这种风格从何而来?它是否比第二种风格更好?
事实上,我发现第二种风格比第一种更合乎逻辑,为什么?!
让我们提出一个要求,如果用户提供的密码等于“海盗”,那么授予该用户权限
当您开始实施上述要求时,
String userProvidedPassword = getPaswordFromUser();
if(userProvidedPassword.equals("PIRATE")) {
// Allow him
}
这不比"PIRATE".equals(userProvidedPassword);更合乎逻辑吗??!考虑一下...
如果我错了,请纠正我..谢谢..
编辑:对不起,这个问题在我之前的搜索中没有出现,它完美地回答了我的问题。也感谢所有在这里提供帮助的人..