J'ai la variable globale suivante de type String.Variable globale de type chaîne
static public String rev="hello"
Je peux le lire sans aucun problème d'un objet d'une autre classe. Y at-il de toute façon je peux le mettre à jour avec une autre chaîne d'un objet d'une autre classe? Je sais que la chaîne Java est immuable. J'ai essayé avec la manière suivante à l'aide StringBuilder:
static public StringBuilder rev=new StringBuilder("hello");
static public void setRev(StringBuilder s)
{
rev=rev.delete(0,rev.length());
rev.append(s);
}
d'une autre classe:
MainActivity.setRev(stringBuilderVar);
Mais cela n'a pas fonctionné.
Java Les valeurs de chaîne sont immuables. StringBuilders ne le sont pas. –
Les chaînes sont immuables, mais vous pouvez réaffecter une chaîne _variable_ à une chaîne différente. Mais vous avez déjà utilisé 'rev' (disons' someOtherVar = MainActivity.rev'), réaffecter 'rev' ne changera rien à l'endroit où vous avez précédemment copié la référence. Sans plus d'informations, il est difficile de dire quelle est la bonne façon de faire les choses. Mais je suis assez sûr que StringBuilder n'est pas la bonne solution. – ajb
Déclarer que StringBuilder est statique peut être la cause de l'immuabilité? La raison pour laquelle je déclare statique est que je suis l'accès d'une autre classe. –