Inicjalizacja wielu zmiennych do tej samej wartości w Javie
Szukam czystej i efektywnej metody deklarowania wielu zmiennych tego samego typu i tej samej wartości. Teraz mam:
String one = "", two = "", three = "" etc...
Ale szukam czegoś w stylu:
String one,two,three = ""
Czy jest to coś, co można zrobić w Javie? Mając na uwadze efektywność.
6 answers
String one, two, three;
one = two = three = "";
Powinno to działać z obiektami niezmiennymi. To nie ma sensu dla mutowalnych obiektów, na przykład:
Person firstPerson, secondPerson, thirdPerson;
firstPerson = secondPerson = thirdPerson = new Person();
Wszystkie zmienne wskazywałyby na tę samą instancję. Prawdopodobnie to, czego potrzebujesz w takim przypadku, to:
Person firstPerson = new Person();
Person secondPerson = new Person();
Person thirdPerson = new Person();
Albo jeszcze lepiej użyć tablicy lub Collection
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-28 00:37:05
Możesz zadeklarować wiele zmiennych i zainicjalizować wiele zmiennych, ale nie obie w tym samym czasie:
String one,two,three;
one = two = three = "";
Jednakże, tego typu rzeczy (zwłaszcza wielokrotne zadania) byłyby źle widziane przez większość programistów Javy, którzy uznaliby to zaprzeciwieństwo "Visual simple".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-16 13:37:25
Nie, to nie jest możliwe w Javie.
Możesz to zrobić w ten sposób .. Ale staraj się tego unikać.String one, two, three;
one = two = three = "";
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-01 14:39:37
Działa dla klas pierwotnych i niezmiennych, takich jak String
, Wrapper classes Character, Byte.
int i=0,j=2
String s1,s2
s1 = s2 = "java rocks"
Dla klas mutowalnych
Reference r1 = Reference r2 = Reference r3 = new Object();`
Tworzone są trzy referencje + jeden obiekt. Wszystkie odniesienia wskazują na ten sam obiekt, a twój program będzie źle się zachowywał.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-28 00:38:21
Możesz to zrobić:
String one, two, three = two = one = "";
Ale wszystkie one będą wskazywały na tę samą instancję. Nie spowoduje to problemów z końcowymi zmiennymi lub prymitywnymi typami. W ten sposób możesz zrobić wszystko w jednej linii.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-10 00:53:27
Wydaje mi się, że nie jest możliwe, aby trzeba było ustawiać wszystkie wartości (jak w pierwszym przykładzie, który podałeś.)
Drugi przykład, który podałeś, Zainicjalizuje tylko ostatni varuable na"", a nie Pozostałe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-01 14:31:39