使用此代码:
public static void main(String[] args) { String s = "Java"; StringBuilder buffer = new StringBuilder(s); change(buffer); System.out.println("What's strBuf.charAt(5)? " + strBuf.charAt(3)); System.out.println(buffer); } private static void change(StringBuilder buffer) { buffer.append(" and HTML"); }
当我使用StringBuilder运行代码时,出现错误消息
The constructor StringBuilder(String) is undefined The method charAt(int) is undefined for the type StringBuilder
尝试了StringBuffer,它可以工作。StringBuffer对象的内容被编译为“ Java和Eclipse ..”。
public static void main(String[] args) { String s = "Java"; StringBuffer strbuf = new StringBuffer(s); change(strbuf); System.out.println("The Stringbuffer.charAt(5) is ? " + strbuf.charAt(3)); System.out.println(strbuf); } private static void change(StringBuffer strbuf) { strbuf.append(" and Eclipse"); }
}
StringBuilder 确实 有一个接受a String作为参数的构造函数,并且 确实 有一个.charAt()方法(由于实现了它必须实现CharSequence)。
StringBuilder
String
.charAt()
CharSequence
结论:这是您的IDE中的一个不幸,它没有导入正确的StringBuilder。您使用的另一个库具有不幸的“属性”,该库以相同的名称实现了一个类- 但不在同一包中。
如果导入行是,请在文件顶部查看:
import java.lang.StringBuilder;