当前位置: 代码迷 >> J2SE >> 这代码有什么不妥之处,该如何解决
  详细解决方案

这代码有什么不妥之处,该如何解决

热度:7071   发布时间:2013-02-25 00:00:00.0
这代码有什么不妥之处
1 if(userName.equeals("xyz")){}

  2 int x = 1;
  return x==1:true?false;

------解决方案--------------------------------------------------------
第一个 equals 你写错了。 第二个应该是 return x==1?true:false;
------解决方案--------------------------------------------------------
第一个userName为空的时候,会出异常。
------解决方案--------------------------------------------------------
这编译都过不了吧
------解决方案--------------------------------------------------------
哦哦 ,以后看题小心点
------解决方案--------------------------------------------------------
Java code
//1:这样写即使usernName是null,也不会报错。        if("xyz".equeals(userName)){}//2:这样就OK了,1 == x 本身就是boolean类型了。int x = 1;return 1 == x;
------解决方案--------------------------------------------------------
Java code
1 if(userName.equeals("xyz")){}  // if("xyz".equals(userName)),equals写错了,而且最好xyz写外面,这样能避免当userName为null时候的空指针异常.  2 int x = 1;  return x==1:true?false;  // return x==1?true:false;  ?:顺序反了
------解决方案--------------------------------------------------------
探讨

Java code
//1:这样写即使usernName是null,也不会报错。
if("xyz".equeals(userName)){}
//2:这样就OK了,1 == x 本身就是boolean类型了。
int x = 1;
return 1 == x;

------解决方案--------------------------------------------------------
教你一种变化

if(userName.equals("xyz")){} 也可以写成这样 if("xyz".equals(userName)){}
------解决方案--------------------------------------------------------
第一个userName为null时会抛空指针
第二个就是错的 应该return x==1?true:false;
 或直接 return x==1;
------解决方案--------------------------------------------------------
很明显,三目运算符写错啦,应该是return x==1?true:false;
还有userName可能为空,也可能userName左右两边有空格,
userName.trime().equals("xyz")这样就好了。
------解决方案--------------------------------------------------------
一般将常量放前面,这样就不会报空指针异常
return x==1:true?false; 应该是?:
------解决方案--------------------------------------------------------
1 if("".equals(userName)){}

2 int x = 1;
return x==1?true:false;
------解决方案--------------------------------------------------------
唉。。。
  相关解决方案