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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘宁 中级黑马   /  2012-3-19 17:15  /  1438 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        public static void method_append()
        {
                StringBuffer sb = new StringBuffer();
                StringBuffer sb1 = sb.append("abc");
                sop(sb);
                sop(sb1);
        }
       
       
        public static void main(String[] args)
        {
                method_append();
        }
        public static void sop(String str)
        {
                System.out.println(str);
        }
StringBufferDemo.java:25: 错误: 无法将类 StringBufferDemo中的方法 sop应用到给定
类型;
                sop(sb);
                ^
  需要: String
  找到: StringBuffer
  原因: 无法通过方法调用转换将实际参数StringBuffer转换为String
StringBufferDemo.java:26: 错误: 无法将类 StringBufferDemo中的方法 sop应用到给定
类型;
                sop(sb1);
                ^
  需要: String
  找到: StringBuffer
  原因: 无法通过方法调用转换将实际参数StringBuffer转换为String
2 个错误
然后我把参数换成
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
就通过编译了,这个我知道为什么,但是毕老师用的是String str  为什么我不行啊?       

4 个回复

倒序浏览
你给SOP传得是啥?
sop(sb); sb是StringBuffer类型的吧 但是
public static void sop(String str)
        {
                System.out.println(str);
        }
你传得是String 类型的  ,不同吧 ?
回复 使用道具 举报
或者 你加一句 sop(sb.toString());  将sb转换成字符串。 不知道你明白没有
回复 使用道具 举报
方法参数类型不匹配 sop()的参数是String类型的 你传的是StringBuffer类型的 应把StringBuffer转换成String类型 用 toString() 方法
回复 使用道具 举报
sb.append("abc")后得到的sb1 返回类型仍是StringBuffer
而方法sop中接收的参数str类型应该是String
所以会出错的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马