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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下述程序编译失败产生的原因是什么?

  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"));编译通过,是什么原因?

7 个回复

倒序浏览
坐等大神出现
回复 使用道具 举报
求大神赶快出现!!
回复 使用道具 举报
好诡异,我跟你一样的代码,没有错误。而且理论上也不应该出错
回复 使用道具 举报
都能编译通过,语法上没有错误
回复 使用道具 举报
双引号中间不加东西代表的是空字符,能通过是正常的吧
回复 使用道具 举报
楼主注意一下,HashSet的add方法的返回值。。HashSet的add方法返回值是boolean类型,是一个基本数据类型。而不是对象类型。基本数据类型是不能传给Object的。编译当然不能通过了。
但是使用【“”+基本类型】 可以把基本数据类型转成字符串对象。对象是可以传给Object的。明白了吧?
回复 使用道具 举报 1 0
add方法的返回值,不是Object类型的把,是基本类型boolean
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马