问题描述
private static someMethod initSomething(StringBuilder someString,int number){
...
someString = new StringBuilder(); <- ????
this.someString.append(someString); <- ????
}
initSomething("ddddd",1234);
我只想在这个方法中传递一个字符串。而且我不喜欢使用普通的String,因为它是较慢的StringBuilder。
解决方法
你写道:
private static someMethod initSomething(StringBuilder someString,int number){
someString = new StringBuilder(); <- You just overwrote `someString`
this.someString.append(someString); <- Appending `someString`onto itself?
// You are also missing `return`. And what is `someMethod`?
}
我用观察和问题修改了对原始代码的注释。我想你想做的是这样的:
private static StringBuilder initSomething(String someString,int number){
StringBuilder builder = new StringBuilder();
builder.append(someString);
// more code here?
return builder;
}
或者,您可以像这样返回一个字符串:
return bulder.toString();
如果您需要将 StringBuilder
对象传递给该方法,那么您应该执行以下操作:
private static String initSomething(StringBuilder builder,int number){
builder.append(...); <- what is being appended,number? You'll need to pass what is being appended to the method
// more code here?
return builder.toString();
}
综上所述,您的问题根本不清楚。我不完全确定你想解决什么问题。希望这会有所帮助。