字符串HashMap中的字节数组

时间:2012-09-30 02:48:31

标签: java hashmap

我正在检索用户日期的地图,类型为HashMap<String, String>的数据地图,并且它具有此键值对,字符串和大小为6的byte[]

以前是否有人见过这个或知道该怎么做?

2 个答案:

答案 0 :(得分:2)

你的代码有些可疑。

这些陈述暗示MappedRecord必须实施Map<String, String>

record = (MappedRecord) obj;
item = new HashMap<String, String>();
item.putAll(record);

但是你说这是插入一个值类型为byte[]的条目。这是可能的,但它必须意味着某处/以某种方式以前将该条目添加到MappedRecord对象。为了实现这一点,您必须抑制或忽略“未经检查的转换”警告。

(请注意,putAll代码不会检查它添加到item的条目是否具有正确的键和值类型。它不能!{{1}的代码由于类型擦除,我不知道参数类型应该是什么...而是HashMap.putAll代码假定实际键和值的类型是正确的。它们应该是...除非你忽略/压制警告。)

无论哪种方式,如果没有看到putAll类的代码,以及创建其中包含伪造条目的MappedRecord实例的代码,我们将无法正确诊断此问题。

答案 1 :(得分:0)

据推测这是Java。

虽然声明HashMap<String, String>声明HashMap应该是String-&gt; String,但编译器中的静态类型检查并不是密不可测的(假设它是一种粘在先前存在的语言上的kluge) )。

并且没有动态类型检查来确保(A)HashMap确实是HashMap<String, String>,而(B)某人没有将数组插入HashMap<String, String>。这是因为实际上你拥有的是HashMap<Object, Object>,所以没有办法实现动态检查。