我正在寻找一种方法来创建映射到混合类型的 HashMap。
例如,以下将在 Python 中工作(注意 Pythondict
类似于 Java HashMap
):
d = dict()
d["str"] = "This is a string"
d["flt"] = 1.23
d["int"] = 5
并且在访问时d[x]
,将返回适当的类型(本例中为字符串、浮点数、整数)。
在 Java 中,我可以使用 a HashMap<String, Object>
,但我真的没有办法立即判断每个 Object 是什么类型。
因此,相反,我目前正在尝试创建一个MixedType
包含对象的类,以及它的原始类型信息,以便我以后可以向下转换它。例如:
public class MixedMap
public static class MixedType
{
public Class<?> cls;
public Object val;
public MixedType(Class<?> c, Object v)
{
this.cls = c;
this.val = v;
}
}
public static void main(String args[])
{
MixedType m1 = new MixedType(String.class, "This is a String");
System.out.println((m1.cls)m1.val);
}
}
请注意,这是我正在尝试做的 :-) 因为它目前没有编译抱怨m1 cannot be resolved to a type
。
所以我的问题是,我该如何解决这个问题?实现相同目标的其他方法将受到欢迎,但请不要回答告诉我这限制了编译器的类型检查能力——我知道并且可以接受。
提前致谢。