我知道他们都给出相同的结果。
String str="";
System.out.println("".equals(str));
System.out.println(str.equals(""));
哪个有效?
答案 0 :(得分:1)
第一个称为yoda condition,并避免出现空指针异常
如果定义了str,则第二个可以正常工作,但是您需要处理空条件
两者都做完全相同的事情,并且每个人都可以理解。
但是,一些程序员认为yoda是不好的做法,因为它会降低可读性。我还要补充一点,有时候,您想要捕获空值,所以yoda表示法是无用的。
答案 1 :(得分:1)
如果您传递的是空字符串,则没有区别,都返回true
。
但是写着:"".equals(str);
被认为比以下更安全:
str. equals("");
-如果NullPointerException
为str
,则第二个抛出null
,在这种情况下,第一个简单地返回false
并且您不这样做无需检查str
是否为null
。