簡體   English   中英

在 Java 中將多個變量初始化為相同的值

[英]Initializing multiple variables to the same value in 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 類 Character、Byte。

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

對於可變類

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

創建了三個引用 + 一個 object。 所有引用都指向同一個 object,您的程序將出現異常。

你可以這樣做:

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

但是這些都指向同一個實例。 它不會導致最終變量或原始類型出現問題。 這樣,您可以在一行中完成所有操作。

我認為您不必單獨設置所有值(就像您提供的第一個示例一樣。)

您給出的第二個示例只會將最后一個變量初始化為 "" 而不是其他變量。

編輯:正如 Zeeen 指出的,這在 Java 中不起作用。 我打算回答的問題也在 Groovy 中,這是錯誤提交的。


太晚了,但我發現的最簡單的方法是:

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

Output:

hello
hello
hello

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM