为了账号安全,请及时绑定邮箱和手机立即绑定

您好,这两句话"".equals(A)与A.equals("")是一样的么?

您好,这两句话"".equals(A)与A.equals("")是一样的么?

慕桂英546537 2021-05-13 15:11:35
A是string也可能null,这两个怎么会不一样?不理解,求指教啊。
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

不一样a.equals("")如果A为空的话回报空指针异常,"".equals(a)就不会,推荐用"".equals(a)

查看完整回答
反对 回复 2021-05-23
?
偶然的你

TA贡献1841条经验 获得超3个赞

自己测试一下就明白啦。
public class TempTest {

/**
* @param args
*/

public static void main(String[] args) {
String a="";
String b=null;
try {
System.out.println(a.equals(""));
System.out.println("******************");
System.out.println(null==b);
System.out.println("******************");
System.out.println(b.equals(null));
System.out.println("******************");
System.out.println(b.equals(""));

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
结果:
true
******************
true
******************
java.lang.NullPointerException
at util.TempTest.main(TempTest.java:25)
所以要反过来写才对



查看完整回答
反对 回复 2021-05-23
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

不一样
如果a为null
a = null;
a.equals("")出错nullPointerException
如果写为"".equals(a)-->就可以防止nullPointerException啦

查看完整回答
反对 回复 2021-05-23
  • 3 回答
  • 0 关注
  • 304 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信