文章目录
今天学B.match小白课第12节 HashMap 时,
一、问题:连片的java: -source 1.6 中不支持 diamond 运算符、lambda 表达式
①在
Map<String,String> hashMap = new HashMap<>();//key和value都是string
处出现了如下问题:
※ Error:(12, 52) java: -source 1.6 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
②在
hashMap.forEach((key,value) ->{
System.out.println("[key="+key+",value="+value+"]");
});
处出现了类似问题:
※ Error:(24, 37) java: -source 1.6 中不支持 lambda 表达式
(请使用 -source 8 或更高版本以启用 lambda 表达式)
一般声明的时候需指定类型
Map<String,String> hashMap = new HashMap<>();
但是 JDK1.7 之后,就不需要加<>里面的内容了.这个<>被称为diamond(钻石)运算符
二、解决方法:
1.在微信群里问大佬,大佬在玩游戏,回复的比较慢
2.自己查Google、Baidu、CSDN
①起初的错误:直接copy报错内容,没有进行改动,所以什么都查不到
我当时百度的是我的报错内容:
Error:(12, 52) java: -source 1.6 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
太复杂,百度不知道我要问什么
后来安静了一下修改了方法
②改进后的查询方式
java: -source 1.6 中不支持 diamond 运算符
出来一大片,不用仔细看,解决问题就行,代码就是我们该学的
借鉴:https://blog.csdn.net/kwy15732621629/article/details/77127506
3.IDEA->Project Structure
有没有发现我上传的CSDN图片没有水印,啊啊哈哈哈哈哈哈哈 改成这样就行!
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018120623285938.png)
把language level改成7.Diamonds,ARM,multi-catch etc.以后只能解决java: -source 1.6 中不支持 diamond 运算符的问题
还得把language再改到8-Lambdas,type annotations etc.后,才能解决 java: -source 1.6 中不支持 lambda 表达式的问题