HashMap .put()标记不兼容的类型错误

时间:2018-03-30 17:58:25

标签: java hashmap

我正在尝试将一个对象数组及其等效的id放在HashMap中。

这是我的HashMap:

private Map<String, Value[]> array_memory = new HashMap<String, Value[]>();

这是我的对象数组:

Value[] array = new Value[x];

这就是我把它们放在array_memory中的方式:

return array_memory.put(id, array);

但是,当我运行程序时,我收到此错误:

error: incompatible types: Value[] cannot be converted to Value
    return array_memory.put(id, array);
                           ^

任何帮助都将受到高度赞赏。 (如果我遗漏了一些明显的东西,我想道歉,我已经在这个问题上工作了好几个小时了,而且我的状况并不是最好的。)

感谢您的时间!

3 个答案:

答案 0 :(得分:4)

我假设这发生在返回类型为Value的方法中。编译器抱怨这是因为map#put返回了要添加的值,导致出现此错误,因为Value[]无法转换为Value

答案 1 :(得分:1)

使用您提供的代码段看起来不错。

我认为收到您返回的array_memory.put(id, array)的变量属于Value类型而非Value[]

答案 2 :(得分:0)

put函数返回第二个参数,也许你在返回时得到你的类型不匹配。