我想要做的是有一个实际上将值保存为一个事物的地图,但是被声明为另一个例如实际上将值保存为String,但put / get将使用Integer ...
Map<String,String> map = new HashMap<String,String>();
我可以将此地图用于
map.put("A","1");
String ret = map.get("A");
但这会给我一个字符串,我也需要'把'放在一个字符串中。
我想要的是put / get方法接受一个Integer值(但地图仍然存储......
map.put("A",1);
Integer ret = map.get("A");
我怎样才能做到这一点?
N.B。这不仅仅用于字符串/整数转换,而只是在任何类型之间进行转换。
感谢。
答案 0 :(得分:2)
您可以使用Object
作为值类型。它可以存储String
,Integer
,Double
,几乎可以存储任何内容。但是在使用Object
时需要非常小心,因为您必须相应地投射从地图中获得的每个值(否则您将始终获得ClassCastException
)。
Map<String, Object> map = new HashMap<String, Object>();
仅供参考,我不建议你使用它。相反,请确保您的Map
必须保留并相应地设置值类型。
答案 1 :(得分:1)
简单
Map<String,Integer> map = new HashMap<String,Integer>();
答案 2 :(得分:1)
你可以(但不应该使用,真的)这个生物:https://gist.github.com/eltabo/8953176。真的......这很邪恶。 仅用于教育目的。
答案 3 :(得分:0)
为什么有人想要将值存储在与该值不同的表示中?从地图中获取后,你仍然可以用整数创建一个字符串并反转,但是你有什么优势呢?