我正在寻找一种干净高效的方法来声明相同类型和相同值的多个变量。目前我的代码如下:
String one = "", two = "", three = "" etc...
但我正在寻找类似于:
String one,two,three = ""
这是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
。
one = "cat"
,two.equals("cat")
会返回 true 吗? - Aequitas你可以声明多个变量,也可以初始化多个变量,但不能同时进行:
String one,two,three;
one = two = three = "";
但是,这种做法(尤其是多重赋值)会被大多数Java开发人员所不赞同,他们认为这恰恰是“视觉简单”的相反方式。
不,Java中不可能实现这个功能。
你可以这样做... 但尽量避免使用它。
String one, two, three;
one = two = three = "";
适用于基本数据类型和不可变类,例如 String
、包装类 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 = "";
但是它们将指向同一个实例。这不会对最终变量或原始类型造成问题。通过这种方式,您可以在一行中完成所有操作。
我认为不可能一次性设置所有值(就像你提供的第一个示例)。
你给出的第二个示例只会将最后一个变量初始化为空字符串,而不是其他变量。
虽然有点晚了,但我发现最简单的方法是:
String foo = bar = baz = "hello"
println(foo)
println(bar)
println(baz)
输出:
hello
hello
hello