Gostaria de fazer uma cópia de uma corda e depois ter a capacidade de fazer alterações na cópia sem alterar a seqüência inteira. Eu tentei usar String strTemplateTemp=new String(strTemplate);
em vez de String strTemplateTemp=strTemplate;
eu também tentei usar clone
mas tenho um erro dizendo que o método clone não era visível:String strTemplateTemp=strTemplate.clone();
meu código
DefaultListModel<String> getAllMacrows()
{
DefaultListModel<String> rows= new DefaultListModel<String>();
int pes=0;
int nameStart;
int parEnd;
String row;
String strTemplateTemp=new String(strTemplate);
strTemplateTemp=strTemplateTemp.replace("\n"," ");
// now both strTemplateTemp and strTemplate have chnaged
// want just strTemplateTemp to chnage
Em Java String
casos são imutáveis , por isso não é possível alterar a cadeia (ou seja, ter um efeito colateral). A declaração:
strTemplateTemp=strTemplateTemp.replace("\n"," ");
Cria uma nova seqüência e atribui uma referência à nova cadeia na variável strTemplateTemp
.
Cordas são constantes; seus valores não podem ser alterados depois de serem criadas. Tampões filamento de suporte cordas mutáveis. Porque objetos String são imutáveis que podem ser compartilhados. java.lang.String
Veja este post para mais detalhes.