我可以使用什么来存储多种不同类型的数据(Int/String/等)?我有 PHP 背景,我可以将不同类型的数据存储到数组中,但我不知道如何在 Java 中做到这一点。
举个例子:
$array = array(
"val1" => 1,
"val2" => "cat",
"val3" => true
);
我怎样才能用Java做类似的事情?
Java 是一种强类型语言。在 PHP 或 Javascript 中,变量没有严格的类型。然而,在 Java 中,每个对象和基元都有严格的类型。您可以在数组中存储多种类型的数据,但只能将其作为对象返回。
您可以拥有一个对象数组:
Object[] objects = new Object[3];
objects[0] = "foo";
objects[1] = 5;
请注意,5 被自动装箱为new Integer(5)
它是整数 5 的对象包装器。
然而,如果你想从数组中获取数据,你只能将其作为对象获取。以下内容将不起作用:
int i1 = objects[1]; // Won't work.
Integer i2 = objects[2]; // Also won't work.
你必须将它作为对象返回:
Object o = objects[0]; // Will work.
但是,现在您无法恢复原来的形式。你可以尝试危险的演员:
String s = (String) o;
然而你不知道o
是一个字符串。
您可以检查instanceof
:
String s = null;
if (o instanceof String)
s = (String) o;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)