日期:2014-05-20  浏览次数:20728 次

这代码有什么不妥之处
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;
------解决方案--------------------
唉。。。