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,选中了。