Cara, a questão não é da imutabilidade
das strings nesse caso.
A questão é que os parâmetros para o java
são sempre por referência, logo a referência
que foi passada para o método foi a variável
y do método "main". Quando você no método
x fez str1 = str1.concat(" ok xxxxxxxxxxxx");
você mudou a referência em memória da variável
str1.
-----Mensagem original-----
De: Rodrigo Alvares de Souza [mailto:[EMAIL PROTECTED]
Enviada em: Friday, May 30, 2003 10:32 AM
Para: '[EMAIL PROTECTED]'
Assunto: [java-list] Dúvida cruel
Alguem saberia me dizer pq qdo eu imprimo a variavel y, ela está vazia ? Eu
sei que tem a ver com a imutabilidade das Strings, mas queria uma resposta
que me convencesse.... :-)
public class teste1 {
public teste1() { }
public static void main(String[] args) {
teste1 t = new teste1();
String y = new String("teste - ");
int z = 10;
System.out.println(t.x(y,z));
System.out.println(y);
}
private String x (String str1,int z)
{
str1 = str1.concat(" ok xxxxxxxxxxxx") ;
z = 2003;
return str1;
}
}
Obrigado.
Atenciosamente,
Paulo Henrique C. Zanchettin
Scopus Tecnologia S/A
( 55-11-3909-3561
* [EMAIL PROTECTED]
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usurios Java da Sucesu-SP
dvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------