2014-05-04 104 views
-6

如何創建String類型的值以及Collection?作爲2種類型的JAVA變量

我希望在這個字符串中放入一些時間,其他時間放入集合。

例如在JavaScript我會做

var k; 
if (someBoolean){ 
    k=1; 
} else{ 
    k=[1,2,3]; 
} 

我可以得到變量的java的這種行爲,黑客還是什麼?

我發現解決方案:我創建了一個接口,並將此對象作爲此接口進行刪除。

+1

請更具體一些。您可以有一個字符串集合,或者您可以在[JSON](http://stackoverflow.com/q/7976643/2970947)(或[XML](http://stackoverflow.com/)中序列化一些字符串集合q/4441017/2970947))數組。 –

+0

沒有數組沒有字符串的集合 我也有集合和字符串我想要的變量將在某些情況下字符串和其他放在它集合 – Alon

+0

爲什麼不只是使用字符串集合開始並從字符串中獲取字符串以後收集? – PakkuDon

回答

1

收到的Java不支持聯合類型;然而,這兩種類型的共享相同的基礎Object類,所以你可以指定其中任何一個像這樣

Object something; 
something = "Hello World!"; 
something = new ArrayList(); // this is a collection. 

賠率定義的變量是,你可能正在考慮字符串的集合,在這種情況下, ,你定義它像Collection<String>

Collection<String> strings = new ArrayList<String>(); 
strings.add("Hello"); 
strings.add("World"); 
strings.add("!"); 

如果這不是你想要的東西,你真的想有時存儲字符串,有時存儲在一個集合,請記住,Java強制嚴格的類型檢查。這意味着變量不能存儲任何東西,它們必須存儲的是類型兼容

StringCollection太不同了,如果沒有一些嚴重不良的編程(比如使用Object)或者更奇怪的東西,那麼它們會被認爲是類型兼容的。

0

你不能。字符串是最後一個類,這意味着你不能擴展它。一個字符串只會是一個字符串。您可以擁有包含字符串的集合,但String對象只有兩種類型:對象和字符串。

你可以有一個包含一個String類(或一個StringBuilder)和集合,然後使用這個類來存儲/從