它在method("shruthi")
显示编译错误,而且编译器发出警告,以静态方法将StringBuffer
转换为String。
如果我将StringBuffer
替换为String
,则可以正常使用。但我想知道StringBuffer
。请解释为什么不起作用。
public class Test13{
public static void method1(String s){
System.out.println("String Version");
}
public static void method(StringBuffer sb){
System.out.println("String Buffer Version");
}
public static void main(String a[]){
method1("null");
method("shruthi");
}
}
答案 0 :(得分:4)
您定义了一个带有签名method(StringBuffer)
的方法,但您是通过method("shruthi");
错误是:
method(StringBuffer)
期待一个StringBuffer
对象作为参数,而是传递一个String ...
这是编译器抱怨的原因。
答案 1 :(得分:0)
您误解了string buffer
的工作方式,并且您不会在任何地方初始化它,也不会追加它。
public class Demo
{
public static StringBuffer sBuffer;
public static void appendString(String str)
{
sBuffer.append(str);
}
public static void main(String[] args) throws Exception
{
sBuffer = new StringBuffer(" test");
appendString(" adding this");
System.out.print(sBuffer);
}
}
查看doc's有关如何初始化和使用它的信息。
<强>输出强>
test adding this