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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java中将多个变量初始化为相同的值相关的知识,希望对你有一定的参考价值。

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

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

或者更好的是使用数组或Collection

另一答案

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

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

但是,大多数Java开发人员都不赞成这种事情(尤其是多项任务),他们认为它与“视觉上简单”相反。

另一答案

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

你可以这样做..但试着避免它。

String one, two, three;
one = two = three = "";
另一答案

适用于原语和不可变类,如String,Wrapper classes Character,Byte。

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 = "";

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

另一答案

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

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

以上是关于在Java中将多个变量初始化为相同的值的主要内容,如果未能解决你的问题,请参考以下文章

在Javascript中将多个变量分配给相同的值?

在Javascript中将多个变量分配给相同的值

Python将多个变量初始化为相同的初始值

在 gcc 中将二维数组初始化为 0 时的值不正确

java中怎么给变量初始化?

你如何在java中将堆栈初始化为空?