2014-05-04 67 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)和集合,然后使用这个类来存储/从