A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Bad_Boy 中级黑马   /  2013-9-15 09:02  /  1561 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-9-16 11:25 编辑
  1. 1. if(username.equals(“zxx”){}
  2.         2.        int  x = 1;
  3.                 return x==1?true:false;
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

5 个回复

正序浏览
1. if(username.equals(“zxx”){}这一句就有问题,会导致空指针异常,应该写成if("zxx".equals(username))

2.        int  x = 1;
           return x==1?true:false;
第二句就直接写x==1就可以,因为第二句函数的返回值类型是布尔型,直接return x==1就可以了。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
如果没有开发经验 的确会认为第一个写法没问题,其实第一个写法可以说是不安全的
因为你无法确定在输入的时候 username 会传进来一个null值,正常的写法是常量字符串在前,变量在后
应该写为1. if("zxx".equals(username){}
第二个问题感觉完全是脑子一瞬间混了
你先看看你的函数返回值 是不是 boolean 类型的,如果是boolean类型的 这个才正确,
而且一般 直接写return x==1; 因为x==1 表达式的结果也是boolean类型的 直接能满足需要的.

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
1. username.equals("zxx"),你这是要比较字符串,你可以username=="zxx" 或者 username.compareTo("zxx"),而不是使用equals()。
2. x==1?true:false,从代码上肯定返回的是true,何必定得这么复杂,为什么不定 return xx==1;
你这写是多此一举。或者是 return x==1?"正确":"错误";

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
1. if(username.equals(“zxx”){}
对于你的第一个 ,我感觉还可以,
        2.        int  x = 1;
               return x==1?true:false;
对于第二个  x==1本身就是boolean型  所以像下面这样写比较好
                int  x = 1;
               return x==1;
这样就可以了

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
第一个首先少了个括号. 暂且理解为你的手误. 关键在于如果username是null, 则会报NullPointerException,
第二个 如果要返回boolean, 那么可以直接return x==1, (x==1这个表达式本来就返回boolean),加上那个只是多此一举。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马