今天学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 表达式的问题