黑马程序员技术交流社区

标题: 有没有大神帮我看一下这个问题?关于集合HahsSet的 [打印本页]

作者: 一亿元的日落    时间: 2014-7-16 20:37
标题: 有没有大神帮我看一下这个问题?关于集合HahsSet的
下述程序编译失败产生的原因是什么?

  1.   HashSet hs = new HashSet();
  2.         sop(hs.add("java01"));
  3.         sop(hs.add("java01"));
  4.   public static void sop(Object obj){
  5.                 System.out.println(obj);
  6.         }
复制代码

改为:
  sop(""+hs.add("java01"));
        sop(""+hs.add("java01"));编译通过,是什么原因?
作者: xiaogh    时间: 2014-7-16 20:53
坐等大神出现
作者: 一亿元的日落    时间: 2014-7-16 20:55
求大神赶快出现!!
作者: fantacyleo    时间: 2014-7-16 20:55
好诡异,我跟你一样的代码,没有错误。而且理论上也不应该出错
作者: doubandddk    时间: 2014-7-16 21:12
都能编译通过,语法上没有错误
作者: z-翔    时间: 2014-7-16 21:19
双引号中间不加东西代表的是空字符,能通过是正常的吧
作者: 淡夜清风    时间: 2014-7-16 21:32
楼主注意一下,HashSet的add方法的返回值。。HashSet的add方法返回值是boolean类型,是一个基本数据类型。而不是对象类型。基本数据类型是不能传给Object的。编译当然不能通过了。
但是使用【“”+基本类型】 可以把基本数据类型转成字符串对象。对象是可以传给Object的。明白了吧?

作者: 爨庚轩    时间: 2014-7-16 21:40
add方法的返回值,不是Object类型的把,是基本类型boolean




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2