Инициализация нескольких переменных к одному и тому же значению в Java
Я ищу чистый и эффективный метод объявления нескольких переменных одного типа и одного значения. Прямо сейчас у меня есть:
String one = "", two = "", three = "" etc...
но я ищу что-то вроде:
String one,two,three = ""
это то, что можно сделать в Java? Имея в виду эффективность.
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