文章目錄
今天學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圖片沒有水印,啊啊哈哈哈哈哈哈哈 改成這樣就行!

把language level改成7.Diamonds,ARM,multi-catch etc.以后只能解決java: -source 1.6 中不支持 diamond 運算符的問題
還得把language再改到8-Lambdas,type annotations etc.后,才能解決 java: -source 1.6 中不支持 lambda 表達式的問題