黑马程序员技术交流社区

标题: 关于sop打印功能的问题,求教,谢谢! [打印本页]

作者: 刘宁    时间: 2012-3-19 17:15
标题: 关于sop打印功能的问题,求教,谢谢!
        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  为什么我不行啊?       
作者: Destiny    时间: 2012-3-19 17:26
你给SOP传得是啥?
sop(sb); sb是StringBuffer类型的吧 但是
public static void sop(String str)
        {
                System.out.println(str);
        }
你传得是String 类型的  ,不同吧 ?
作者: Destiny    时间: 2012-3-19 17:38
或者 你加一句 sop(sb.toString());  将sb转换成字符串。 不知道你明白没有
作者: 魏群    时间: 2012-3-19 18:19
方法参数类型不匹配 sop()的参数是String类型的 你传的是StringBuffer类型的 应把StringBuffer转换成String类型 用 toString() 方法
作者: 刘元明    时间: 2012-3-19 18:53
sb.append("abc")后得到的sb1 返回类型仍是StringBuffer
而方法sop中接收的参数str类型应该是String
所以会出错的




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