emanuell:
Como assim? No java tipos primitivos não seria passagem por valor e objeto por referencia?
Outra coisa, teria outra solução além da passagem do array?
Como disse antes, Jáva só faz passagem por valor, não importa se é um um tipo primitivo ou não. Depois de ler o maravilhoso tutorial que eu indiquei acima, isso vai ficar bem claro.
Uma alternativa ao uso de array, seria você criar uma classe que funcionasse como um wrapper de
String. Como assim? Simples: Uma classe que tem um campo do tipo
String e que proveja métodos que permitam alterar esse
String. Um exemplo bem mínimo seria algo assim:
public class WString{
private String string;
public WString(String string){
set(string);
}
public String get(){ return string; }
public void set(String string){ this.string = string; }
}
Dessa forma, você pode desenhar seu método que deveria “alterar” o String passado por parâmetro de forma que receba não mais um String, e sim um WString.
public void alteraString(WString wstr){
wstr.set("Já era o valor antigo desse String...");
}