使用此代码:
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");
}
Run Code Online (Sandbox Code Playgroud)
当我使用 StringBuilder 运行代码时,我收到错误消息
The constructor StringBuilder(String) is undefined
The method charAt(int) is undefined for the type StringBuilder
Run Code Online (Sandbox Code Playgroud)
改为尝试 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");
}
Run Code Online (Sandbox Code Playgroud)
}
StringBuilder 确实有一个接受 aString作为参数的构造函数,并且确实有一个.charAt()方法(它必须实现,因为它实现了CharSequence)。
结论:这是 IDE 部分的失误,它没有导入正确的StringBuilder. 您使用另一个库,它具有实现同名类的不幸“属性”——但不在同一个包中。
如果导入行是:
import java.lang.StringBuilder;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15872 次 |
| 最近记录: |