Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类型HashMap的方法replace(String,ArrayList<;)未定义_Java_Hashmap_Java 7 - Fatal编程技术网

Java 类型HashMap的方法replace(String,ArrayList<;)未定义

Java 类型HashMap的方法replace(String,ArrayList<;)未定义,java,hashmap,java-7,Java,Hashmap,Java 7,我有一个代码可以在我的机器上正常工作: ArrayList<Posting> postings = invertedLists.get(key); //---- Apply some changes on postings ----- invertedLists.replace(key, postings); ArrayList postings=invertedlist.get(键); //----在发布时应用一些更改------ 逆变器列表。更换(钥匙、标牌); 当

我有一个代码可以在我的机器上正常工作:

ArrayList<Posting> postings = invertedLists.get(key);
//---- Apply some changes on postings -----     
invertedLists.replace(key, postings);
ArrayList postings=invertedlist.get(键);
//----在发布时应用一些更改------
逆变器列表。更换(钥匙、标牌);
当我的朋友克隆代码时,会出现以下错误:

The method replace(String, ArrayList<Posting>) is undefined for the type HashMap<String,ArrayList<Posting>>
类型HashMap的方法replace(String,ArrayList)未定义
注意:InvertedList是一个
HashMap

我们检查了我的项目;我使用的是JavaSE-1.6,她使用的是JavaSE-1.7


什么会导致此问题?

您正在寻找的方法是
InvertedList.put(key,posting)
编辑:根据Java文档,replace()不是HashMap的API的一部分。

您正在寻找的方法是
invertedList.put(key,posting)。
编辑:根据Java文档,replace()不是HashMap API的一部分。

首先在Java 1.8中声明(请参阅底部的“自:1.8”)。您必须针对1.8 JDK进行编译(即使您是在1.6模式下编译)。例如,在IDE中可以这样做:将语言兼容模式设置为一个版本,但根据另一个版本的JDK进行编译。我在事故中做过几次

您的朋友正在“normal”1.7上编译,它没有声明该方法。

是在Java1.8中首次声明的(请参阅底部的“自:1.8”)。您必须针对1.8 JDK进行编译(即使您是在1.6模式下编译)。例如,在IDE中可以这样做:将语言兼容模式设置为一个版本,但根据另一个版本的JDK进行编译。我在事故中做过几次


您的朋友正在“normal”1.7上编译,它没有声明该方法。

对于
哈希映射,没有方法
replace(K,V)
,在中,您必须使用它。

对于
哈希映射,没有方法
replace(K,V)
,在中,你必须使用它。

这并不能解释为什么它不能在另一台机器上编译。我相信问题是“什么会导致这个问题?”根据文档(),替换不是标准中的HashMap方法。仍然不是完全正确的
replace()
确实是Java 8中的
HashMap
API的一部分。这并不能解释为什么它没有在另一台机器上编译。我相信问题是“什么会导致这个问题?”根据文档(),replace不是标准中的HashMap方法。仍然不是完全正确的
replace()
确实是Java 8中的
HashMap
API的一部分。请给出一个简短但完整的程序来演示这个问题。(代码为我编译。)我怀疑您实际上在使用Java 8,因为当时引入了
replace
方法……请给出一个简短但完整的程序来演示这个问题。(代码为我编译。)我怀疑您实际上在使用Java 8,因为当时引入了
replace
方法……在eclipse:Project->properties->Java编译器中,我看到了1.6,我应该在哪里检查我是否在使用Java 8?Windows->Preferences->Java->compiler:1.4找到了它,可能是这样的:Windows->Preferences->Java->Installed JRE->那里有一个Java 8,选中了。在eclipse:Project->properties->Java编译器中,我看到1.6,我应该在哪里检查我是否使用Java 8?Windows->Preferences->Java->compiler:1.4找到了它,可能是这样的:Windows->Preferences->Java->Installed JRE->那里有一个Java8,选中了。