Вы не можете изменить значение errorText
в foo
, так как метод в настоящее время объявлен.Даже если вы передаете ссылку на строку errorText
в foo
, Java String
s является неизменяемой - вы не можете их изменить.
Однако вы можете использовать StringBuffer
(или StringBuilder
).Эти классы можно редактировать в вашем методе foo
.
public class Test {
public static void foo(StringBuilder errorText){
errorText.delete(0, errorText.length());
errorText.append("bla bla");
}
public static void main(String[] args) {
StringBuilder error=new StringBuilder("initial");
foo(error);
System.out.println(error);
}
}
Другими решениями является использование класса-оболочки (создайте класс для хранения вашей ссылки String и измените ссылку в foo
) илипросто верните строку.