Meerdere variabelen initialiseren naar dezelfde waarde in Java

Ik ben op zoek naar een schone en efficiënte methode om meerdere variabelen van hetzelfde type en dezelfde waarde te declareren. Op dit moment heb ik:

String one = "", two = "", three = "" etc...

Maar ik ben op zoek naar iets als:

String one,two,three = ""

Is dit mogelijk in Java? Houd rekening met efficiëntie.


Antwoord 1, autoriteit 100%

String one, two, three;
one = two = three = "";

Dit zou moeten werken met onveranderlijke objecten. Het heeft bijvoorbeeld geen zin voor veranderlijke objecten:

Person firstPerson, secondPerson, thirdPerson;
firstPerson = secondPerson = thirdPerson = new Person();

Alle variabelen zouden naar dezelfde instantie verwijzen. Waarschijnlijk heeft u in dat geval het volgende nodig:

Person firstPerson = new Person();
Person secondPerson = new Person();
Person thirdPerson = new Person();

Of beter nog, gebruik een array of een Collection.


Antwoord 2, autoriteit 20%

U kunt meerdere variabelen declareren en meerdere variabelen initialiseren, maar niet beide tegelijk:

String one,two,three;
 one = two = three = "";

Dit soort dingen (vooral de meerdere opdrachten) zou echter door de meeste Java-ontwikkelaars worden afgekeurd, die het het tegenovergesteldevan “visueel eenvoudig” zouden beschouwen.


Antwoord 3, autoriteit 7%

Nee, het is niet mogelijk in Java.

Je kunt het op deze manier doen.. Maar probeer het te vermijden.

String one, two, three;
one = two = three = "";

Antwoord 4, autoriteit 5%

Werkt voor primitieven en onveranderlijke klassen zoals String, Wrapper-klassen Character, Byte.

int i=0,j=2   
String s1,s2  
s1 = s2 = "java rocks"

Voor veranderlijke klassen

Reference r1 = Reference r2 = Reference r3 = new Object();`  

Er worden drie referenties + één object gemaakt. Alle verwijzingen verwijzen naar hetzelfde object en uw programma zal zich misdragen.


Antwoord 5, autoriteit 4%

U kunt dit doen:

String one, two, three = two = one = "";

Maar deze zullen allemaal naar dezelfde instantie verwijzen. Het zal geen problemen veroorzaken met uiteindelijke variabelen of primitieve typen. Op deze manier kunt u alles in één regel doen.


Antwoord 6

Ik denk niet dat het mogelijk is dat je alle waarden individueel moet instellen (zoals in het eerste voorbeeld dat je hebt gegeven.)

Het tweede voorbeeld dat u gaf, initialiseert alleen de laatste variabele naar “” en niet de andere.


Antwoord 7

Bewerken: Zoals Zeeen al aangaf, werkt dit niet in Java. De vraag die ik had willen beantwoorden was ook in Groovy, deze was ten onrechte ingediend.


Veel te laat om dit te doen, maar de eenvoudigste manier die ik heb gevonden is:

String foo = bar = baz = "hello"
println(foo)
println(bar)
println(baz)

Uitvoer:

hello
hello
hello

LEAVE A REPLY

Please enter your comment!
Please enter your name here

fourteen + 5 =

Other episodes