系统抛出错误生成器无法在java程序中解决?
系统抛出错误生成器无法在java程序中解决:-在行中的字符串结果=builder.toString()和builder.append(“abc”)强>系统抛出错误生成器无法在java程序中解决?,java,Java,系统抛出错误生成器无法在java程序中解决:-在行中的字符串结果=builder.toString()和builder.append(“abc”) package newprojectstring; import java.lang.StringBuilder; public class MyOwnClass { public static void main(String[] args) { // Loop and append values.
package newprojectstring;
import java.lang.StringBuilder;
public class MyOwnClass {
public static void main(String[] args) {
// Loop and append values.
for (int i = 0; i < 5; i++) {
MyOwnClass Builder = new MyOwnClass();
builder.append("abc");
}
// Convert to string.
String result = builder.toString();
System.out.println(result);
}
package-newprojectstring;
导入java.lang.StringBuilder;
公共类{
公共静态void main(字符串[]args){
//循环并附加值。
对于(int i=0;i<5;i++){
MyOwnClass Builder=新的MyOwnClass();
建造商。附加(“abc”);
}
//转换为字符串。
字符串结果=builder.toString();
系统输出打印项次(结果);
}
}当您编写
builder.append(“abc”)代码>,java将查找由名为builder
的引用表示的class
,在本例中,它是您的自定义类Stringbuilder
。然后它将查找带有字符串参数的方法append
,但找不到,因为您还没有定义这样的方法
现在有一个预定义的StringBuilder
,它有一个名为append
的方法。我想你对此感到困惑。如果要调用StringBuilder的append方法,必须引用StringBuilder
Stringbuilder builder = new Stringbuilder();
builder.append("abc");
首先,不要用与标准Java
库中的类名相似的名称来命名自己的类。如果你这样做,你总是会得到大量的错误,每个读你代码的人都会诅咒你
接下来,您希望使用java.lang
包中的标准StringBuilder
,但实际上您尝试使用自己的StringBuilder
类的实例,该类不包含append()
方法<从Java
的角度来看,code>StringBuilder
和StringBuilder
是不同的东西。如果不命名类Stringbuilder
,则在IDE中编写时会看到错误
按如下方式重写代码:
public class MyOwnClass { // *** Not 'Stringbuilder'!!!
public static void main(String[] args) {
// Create a new StringBuilder
StringBuilder builder = new StringBuilder(); // *** Not 'Stringbuilder' !!!
// Loop and append values.
for (int i = 0; i < 5; i++) { // Use spaces properly
builder.append("abc");
}
// Convert to string.
String result = builder.toString();
System.out.println(result);
}
}
公共类MyOwnClass{/***不是“Stringbuilder”!!!
公共静态void main(字符串[]args){
//创建新的StringBuilder
StringBuilder=新建StringBuilder();//***不是“StringBuilder”!!!
//循环并附加值。
对于(inti=0;i<5;i++){//请正确使用空格
建造商。附加(“abc”);
}
//转换为字符串。
字符串结果=builder.toString();
系统输出打印项次(结果);
}
}
您是否将代码更改为公共类StringBuilder
?我不是这个意思。您应该更改Stringbuilder=new Stringbuilder()代码>到StringBuilder=新的StringBuilder()代码>@Sweeper,如果我更改Stringbuilder=new Stringbuilder();至StringBuilder=新建StringBuilder();系统在字符串result=builder.toString()中抛出错误;无法解析线条生成器StringBuilder=new StringBuilder()代码>应该在循环之外,因为它对外不可见。@Satya是的,它解决了我的prblm问题