Initialisation de plusieurs variables à la même valeur en Java
Je cherche une méthode propre et efficace pour déclarer plusieurs variables du même type et de la même valeur. En ce moment j'ai:
String one = "", two = "", three = "" etc...
Mais je cherche quelque chose comme:
String one,two,three = ""
Est-ce quelque chose qui est possible de faire en java? Garder l'efficacité à l'esprit.
6 réponses
String one, two, three;
one = two = three = "";
Cela devrait fonctionner avec des objets immuables. Cela n'a aucun sens pour les objets mutables par exemple:
Person firstPerson, secondPerson, thirdPerson;
firstPerson = secondPerson = thirdPerson = new Person();
Toutes les variables pointeraient vers la même instance. Probablement ce dont vous auriez besoin dans ce cas est:
Person firstPerson = new Person();
Person secondPerson = new Person();
Person thirdPerson = new Person();
Ou, mieux encore, utiliser un tableau ou un Collection
.
Vous pouvez déclarer plusieurs variables et initialiser plusieurs variables, mais pas les deux en même temps:
String one,two,three;
one = two = three = "";
Cependant, ce genre de chose (en particulier les affectations multiples) serait mal vu par la plupart des développeurs Java, qui le considéreraient comme le opposé de "visuellement simple".
Non, ce n'est pas possible en java.
Vous pouvez le faire de cette façon .. Mais Essayez de l'éviter .
String one, two, three;
one = two = three = "";
Fonctionne pour les primitives et les classes immuables comme String
, wrapper classes Character, Byte.
int i=0,j=2
String s1,s2
s1 = s2 = "java rocks"
Pour les classes mutables
Reference r1 = Reference r2 = Reference r3 = new Object();`
Trois références + un objet sont créés. Toutes les références pointent vers le même objet et votre programme se comportera mal.
Vous pouvez faire ceci:
String one, two, three = two = one = "";
Mais ceux - ci pointeront tous vers la même instance. Cela ne causera pas de problèmes avec les variables finales ou les types primitifs. De cette façon, vous pouvez tout faire en ligne.
Je ne pense pas que ce soit possible, vous devez définir toutes les valeurs individualisées (comme le premier exemple que vous avez fourni.)
Le deuxième exemple que vous avez donné, initialisera seulement le dernier varuable à "" et non les autres.