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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘宁 中级黑马   /  2012-3-19 17:13  /  2553 人查看  /  7 人回复  /   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  为什么我不行啊?       
       

7 个回复

倒序浏览
sop(sb);
sop(sb1);
穿的是对象,你定义String类型,肯定不行啊
你肯定是看错了毕老师的哪步了
回复 使用道具 举报
很明显的啊。系统都指明了无法将类 StringBufferDemo中的方法 sop应用到给定类型。。你定义的sop(String s)这个方法接收一个String型的参数。你传个StringBuffer进去肯定不行的。
回复 使用道具 举报
StringBuffe 和String不是一个类型
回复 使用道具 举报
string 和 stringbuffer不是一个类型
回复 使用道具 举报
刘老师  我昨天网速慢 卡到那了 所以就发了两遍。您都给加技术分了。
回复 使用道具 举报
丁佼 黑马帝 2012-3-20 01:37:58
7#
想使用sop(String str)的话,就要把传递过来的值也变换成String类型就可以了。
一般是调用对象的toString方法就可以将字符容器的内容转换成String值,你这里是sop(sb.toString()); 就可以了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马