在Java中将多个变量初始化为相同的值

时间:2011-06-01 14:29:04

标签: java variables initialization declaration

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

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

但我正在寻找类似的东西:

String one,two,three = ""

这是否可以在java中完成?牢记效率。

7 个答案:

答案 0 :(得分:286)

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

答案 1 :(得分:50)

您可以声明多个变量,并初始化多个变量,但不能同时初始化两个变量:

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

然而,大多数Java开发人员都不赞成这种事情(特别是多项任务),他们认为它是“视觉上简单”的相反

答案 2 :(得分:17)

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

你可以这样做..但尽量避免

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

答案 3 :(得分:12)

适用于基元和不可变类,如String,包装类字符,字节。

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

对于可变类

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

创建三个引用+一个对象。所有引用都指向同一个对象,您的程序会出错。

答案 4 :(得分:10)

你可以这样做:

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

但这些都指向同一个实例。它不会导致最终变量或原始类型的问题。这样,您就可以在一行中完成所有工作。

答案 5 :(得分:2)

我认为您不必设置所有个别值(如您提供的第一个示例)。

您提供的第二个示例,只会将最后一个变量初始化为“”而不是其他变量。

答案 6 :(得分:1)

此方法为时已晚,但我发现的最简单方法是:

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

输出:

hello
hello
hello