我正在寻找一种干净有效的方法来声明相同类型和相同值的多个变量。现在我有:

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

但我想要的是:

String one,two,three = ""

这在java中是可能的吗?牢记效率。


当前回答

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();

或者最好使用数组或集合。

其他回答

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();

或者最好使用数组或集合。

编辑:正如Zeeen指出的那样,这在Java中是行不通的。我想要回答的问题也是在Groovy中,这是错误提交的。


太晚了,但我找到的最简单的方法是:

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

输出:

hello
hello
hello

不,这在java中是不可能的。

你可以这样做。但是要尽量避免。

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

我认为这是不可能的,你必须单独设置所有的值(就像你提供的第一个例子一样)。

你给出的第二个例子,将只初始化最后一个变量为“”,而不是其他变量。

你可以这样做:

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

但是这些都指向同一个实例。它不会对最终变量或基本类型造成问题。这样,你可以在一行中完成所有的事情。