Java 集合:映射中未定义的k,v
我正在从这本书中学习收藏 那家伙举了个例子Java 集合:映射中未定义的k,v,java,eclipse,dictionary,hashmap,java-8,Java,Eclipse,Dictionary,Hashmap,Java 8,我正在从这本书中学习收藏 那家伙举了个例子 import java.util.HashMap; import java.util.Map; public class MapTester { public static void main(String[] args) { // keys are Strings // objects are also Strings Map<String, String> map = new HashMap<>(); fillData
import java.util.HashMap;
import java.util.Map;
public class MapTester {
public static void main(String[] args) {
// keys are Strings
// objects are also Strings
Map<String, String> map = new HashMap<>();
fillData(map);
// write to command line
map.forEach((k, v) -> System.out.printf("%s %s%n", k, v));
// add and remove from the map
map.put("iPhone", "Created by Apple");
map.remove("Android");
// write again to command line
map.forEach((k, v) -> System.out.printf("%s %s%n", k, v));
}
private static void fillData(Map<String, String> map) {
map.put("Android", "Mobile");
map.put("Eclipse IDE", "Java");
map.put("Eclipse RCP", "Java");
map.put("Git", "Version control system");
}
}
以同样的路线面对问题
请帮我学习这些藏品。
它在我的系统上运行良好。你能检查一下你在用JDK8吗?Java8中引入了Lamdas支持。您可以使用
java--version
来测试java版本。请更正java编译器的项目属性:
不起作用:
有效:
这个问题的答案 您需要使用4.4(Luna)来获得Java8支持 可能对以后检查的人有用
谢谢@greg-449您是否遇到编译错误?这里有一个问题,这段代码没有问题。唯一的问题是您的安装系统。检查您是否确实是用Java8编译的。您使用的是什么IDE(看起来可能是Eclipse)?IDE的哪个版本?对于Eclipse,您需要使用4.4(Luna)来获得Java 8支持。您可能有较旧版本的Eclipse。添加了一个包含Java库1.8的快照。当然,您应该检查javac的版本(
javac-version
),而不是Java。此外,获取版本的语法是用一个破折号。@bmesuere为您添加了一个快照+1投票。虽然问题是我用的是开普勒。但可能有人需要配置谁将面临相同的问题。
map.forEach((k, v) -> System.out.printf("%s %s%n", k, v));