黑马程序员技术交流社区
标题:
这代码有什么不妥之处,求解
[打印本页]
作者:
Bad_Boy
时间:
2013-9-15 09:02
标题:
这代码有什么不妥之处,求解
本帖最后由 杨增坤 于 2013-9-16 11:25 编辑
1. if(username.equals(“zxx”){}
2. int x = 1;
return x==1?true:false;
复制代码
作者:
赵凯
时间:
2013-9-15 09:13
第一个首先少了个括号. 暂且理解为你的手误. 关键在于如果username是null, 则会报NullPointerException,
第二个 如果要返回boolean, 那么可以直接return x==1, (x==1这个表达式本来就返回boolean),加上那个只是多此一举。
作者:
雪龙
时间:
2013-9-15 09:18
1. if(username.equals(“zxx”){}
对于你的第一个 ,我感觉还可以,
2. int x = 1;
return x==1?true:false;
对于第二个 x==1本身就是boolean型 所以像下面这样写比较好
int x = 1;
return x==1;
这样就可以了
作者:
冷漠无天
时间:
2013-9-15 10:33
1. username.equals("zxx"),你这是要比较字符串,你可以username=="zxx" 或者 username.compareTo("zxx"),而不是使用equals()。
2. x==1?true:false,从代码上肯定返回的是true,何必定得这么复杂,为什么不定 return xx==1;
你这写是多此一举。或者是 return x==1?"正确":"错误";
作者:
zhou5852
时间:
2013-9-15 12:51
如果没有开发经验 的确会认为第一个写法没问题,其实第一个写法可以说是不安全的
因为你无法确定在输入的时候 username 会传进来一个null值,正常的写法是常量字符串在前,变量在后
应该写为1. if("zxx".equals(username){}
第二个问题感觉完全是脑子一瞬间混了
你先看看你的函数返回值 是不是 boolean 类型的,如果是boolean类型的 这个才正确,
而且一般 直接写return x==1; 因为x==1 表达式的结果也是boolean类型的 直接能满足需要的.
作者:
doevents
时间:
2013-9-15 14:09
1. if(username.equals(“zxx”){}这一句就有问题,会导致空指针异常,应该写成if("zxx".equals(username))
2. int x = 1;
return x==1?true:false;
第二句就直接写x==1就可以,因为第二句函数的返回值类型是布尔型,直接return x==1就可以了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2