Инициализация нескольких переменных к одному и тому же значению в Java



Я ищу чистый и эффективный метод объявления нескольких переменных одного типа и одного значения. Прямо сейчас у меня есть:



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


но я ищу что-то вроде:



String one,two,three = ""


это то, что можно сделать в Java? Имея в виду эффективность.

669   6  

6 ответов:

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

это должно работать с неизменяемыми объектами. Это не имеет никакого смысла для изменяемых объектов, например:

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

все переменные будут указывать на один и тот же экземпляр. Вероятно, что вам понадобится в этом случае:

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

или еще лучше использовать массив или Collection.

вы можете объявить несколько переменных и инициализировать несколько переменных, но не одновременно:

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

однако такого рода вещи (особенно несколько назначений) будут неодобрительно относиться к большинству разработчиков Java, которые будут считать его напротив в "простые".

нет, это невозможно в java.

вы можете сделать это таким образом .. Но старайтесь избегать его.

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

работает для примитивов и неизменяемых классов, таких как String, обертка классов символов, байт.

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

для изменяемых классов

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

создаются три ссылки + один объект. Все ссылки указывают на один и тот же объект, и ваша программа будет безобразничать.

вы можете сделать это:

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

но все они будут указывать на один и тот же экземпляр. Это не вызовет проблем с конечными переменными или примитивными типами. Таким образом, вы можете сделать все в одну строку.

Я не думаю, что это возможно, вы должны установить все значения индивидуализации (как в первом примере, который вы предоставили.)

второй пример, который вы дали, будет инициализировать только последний varuable для"", а не другие.

Comments

    Ничего не найдено.