为什么java编译器会抱怨StringBuffer
它在为什么java编译器会抱怨StringBuffer,java,Java,它在方法(“shruthi”)处显示了一个编译错误,而且编译器正在发出警告,将StringBuffer转换为静态方法的字符串。 如果我用String替换StringBuffer,它可以正常工作。但是我想知道关于StringBuffer。请解释为什么这不起作用 public class Test13{ public static void method1(String s){ System.out.println("String Version"); }
方法(“shruthi”)
处显示了一个编译错误,而且编译器正在发出警告,将StringBuffer
转换为静态方法的字符串。
如果我用String
替换StringBuffer
,它可以正常工作。但是我想知道关于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");
}
}
您使用签名
方法(StringBuffer)
定义了一个方法,但您使用方法(“shruthi”)调用它代码>
错误是:
method(StringBuffer)
需要一个StringBuffer
对象作为参数,而不是传递一个字符串
这就是编译器抱怨的原因。您使用签名方法(StringBuffer)
定义了一个方法,但您通过方法(“shruthi”)调用它代码>
错误是:
method(StringBuffer)
需要一个StringBuffer
对象作为参数,而不是传递一个字符串
这就是编译器抱怨的原因。您误解了字符串缓冲区的工作原理,您没有在任何地方初始化它,也没有附加到它
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);
}
}
查看有关如何初始化和使用它的详细信息
输出
test adding this
您误解了字符串缓冲区的工作原理,并且没有在任何地方初始化它,也没有附加到它
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);
}
}
查看有关如何初始化和使用它的详细信息
输出
test adding this
“shruthi”
是一个字符串
。您正试图将其传递给需要StringBuffer
的对象。你期待什么?“shruthi”
是一个字符串。您正试图将其传递给需要StringBuffer
的对象。你期望什么?这是半对半错的,字符串缓冲区对象也不例外。您应该使用字符串,但它与内置的append
函数一起使用,而不是直接抛出字符串。这是半对半错的,字符串缓冲区对象也不例外。您应该使用字符串,但它与内置的append
函数一起使用,而不是直接插入字符串。