JavaEclipse中从Lambada表达式运行错误的解决方法到学到新知识
在使用jdk1.8.0-151時(shí)出現(xiàn)的錯(cuò)誤,本來(lái)在java8.0版本中,增加的新特性應(yīng)該是,??局部?jī)?nèi)部類、匿名內(nèi)部類可以訪問(wèn)到非final的局部變量,增加了lambda表達(dá)式的,但是我之前使用jdk1.8.0-151,應(yīng)該是舊版本,雖然是1.8.0,但還沒(méi)有更新新特性,所以輸出lambda時(shí)總是出現(xiàn)多個(gè)語(yǔ)法錯(cuò)誤,面對(duì)這種情況,讀者應(yīng)該去Java官網(wǎng)中使用卸載工具取出舊版本,直接安裝最新的jdk版本,第二步在Eclipse編譯器中更改自己的jdk版本,由于新版的JDK9,11,13,17沒(méi)有JRE,所以無(wú)法在Eclipse中自主更改JRE,本人愚鈍,沒(méi)有更改成功,選擇卸載重裝Eclipse的操作。(77條消息) eclipse更換jdk版本_zeal9s的博客-CSDN博客_eclipsejdk版本切換zhttps://blog.csdn.net/zeal9s/article/details/85090545
這是另一位博主的文章,可以看。
?接下來(lái)是我在為解決這個(gè)問(wèn)題時(shí)跌跌撞撞找到答案走過(guò)的心酸路,同時(shí)學(xué)到了很多知識(shí),已經(jīng)解決問(wèn)題的伙伴可以離開了
自學(xué)者的確很難受,我在使用Eclipse時(shí),通過(guò)Java基礎(chǔ)入門這本書一直學(xué)到了匿名內(nèi)部類和Lambda表達(dá)式的部分,其中8.0版本之后增加了局部?jī)?nèi)部類和匿名內(nèi)部類訪問(wèn)局部變量時(shí),不必再在局部變量前加final修飾,增加了lambda表達(dá)式這個(gè)新特性。
//定義動(dòng)物類接口 interface Animal{void shout(); } public class Example{public static void main(String[] args){String name = "小花" ; /** *在jdk8.0版本之前, *局部?jī)?nèi)部類,和匿名內(nèi)部類在訪問(wèn)局部變量時(shí),必須在局部變量前加上final修飾,否則錯(cuò)誤 *例如,應(yīng)改為final String name; */animalShout(Animal(){public void shout(){System.out.println("匿名內(nèi)部類輸出:"+name+"喵喵。。");}}); //使用Lambda表達(dá)式作為參數(shù)傳遞給animalShout方法,jdk8.0版本之前會(huì)提示lambda表達(dá)式有多個(gè)語(yǔ)法錯(cuò)誤 animalShou(()->System.out.println("Lambda表達(dá)式輸出:"+name+"喵喵。。")); } //創(chuàng)建一個(gè)animalShout的靜態(tài)方法,接收Animal接口類型的參數(shù)an //必須讓匿名內(nèi)部類和lambda表達(dá)式使用的方法名和下面的靜態(tài)方法名相同,使用相同的接口類型的參數(shù) //這樣才算完成了接口內(nèi)抽象方法的具體化, public static void animalShout(Animal an){ an.shout(); }使用jdk1.8.0.151的我,Eclipse提示我在局部變量前添加final,提示lambda表達(dá)式錯(cuò)誤,在多次更改代碼后還是錯(cuò)誤,于是我對(duì)照書發(fā)現(xiàn)這種錯(cuò)誤由版本引起,我查閱了java官網(wǎng)上jdk8.0版本新增加的特性,最后認(rèn)為時(shí)這個(gè)版本的問(wèn)題,于是卸載掉重新安裝最新的版本,在多次操作修改eclipse使用的jdk版本失敗后,狠心卸載重裝,重裝后一切正常。
在重裝的過(guò)程中,我學(xué)到了symdm.cpl可以打開系統(tǒng)屬性,找到環(huán)境變量和路徑。
我學(xué)到cd? [文件路徑],可以打開對(duì)應(yīng)文件#中括號(hào)是要去掉的,文件路徑就是你打開文件管理器,上方搜索欄里顯示的一串英文字符和/組成的字符串。
我學(xué)到cd ..可以返回父目錄,例如我們通過(guò)win + r 進(jìn)入運(yùn)行 ,輸入cmd進(jìn)入命令提示符后,首先進(jìn)入的就是C:\Users\Win10>,你可以輸入cd .. 返回到C:\Users\> ,如果你想進(jìn)入d盤,直接輸入 D:就好,想打開d盤中的某個(gè)文件,就輸入cd [文件路徑]? ?//注意,不要把中括號(hào)也輸入進(jìn)去。
我學(xué)到使用命令行工具來(lái)編譯并運(yùn)行Java程序
我可以進(jìn)入命令提示符之后,找到我們編寫的java程序,例如,我通過(guò)記事本輸入了一個(gè)Java程序,怎么使用記事本運(yùn)行java程序??新建一個(gè)記事本,然后將記事本的后綴改為“.java”,使用記事本的方式打開,輸入java程序代碼,按“win+R”快捷鍵鍵打開運(yùn)行,輸入“cmd”,輸入“D:”,按“Enter”,再輸入“cd Desktop”進(jìn)去Desktop文件夾,再輸入“javac Test.java”,按“Enter”鍵,再輸入“java Test”,按“Enter”鍵。注意:在Windows環(huán)境中,如果使用Notepad編輯Test.java,實(shí)際上會(huì)把它保存為Test.java.txt,如果采用是默認(rèn)的Windows設(shè)置,記事本會(huì)隱藏.txt擴(kuò)展名,你需要在保存時(shí)將下方的文件類型改為所有文件,文件名后綴依舊加上.java就成功生成java源程序了。
https://jingyan.baidu.com/article/f71d603746984a5bb641d1e9.html
這是其他up用記事本寫java源程序的教程,一定要注意!保存文件類型要選擇所有文件類型!!!
javac命令是將源程序改為class字節(jié)碼文件。java命令是將class字節(jié)碼文件解釋執(zhí)行的。
學(xué)完如何從命令行編譯和運(yùn)行一個(gè)java程序后,我興致沖沖的開始運(yùn)行eclipse,試著打印一串最簡(jiǎn)單的"你好世界",卻發(fā)現(xiàn),2022年6月份的eclipse居然不能輸出中文了。
我想到這是編碼格式的問(wèn)題,UTF-8是自帶的格式,你需要更改為GBK格式,無(wú)需大小寫,
(77條消息) Eclipse設(shè)置編碼格式_初塵19的博客-CSDN博客_eclipse 編碼
謝謝觀看
為了解決一個(gè)普通的lambda表達(dá)式的問(wèn)題,我居然稀里糊涂的學(xué)到這么多小知識(shí)!這就是非專業(yè)者學(xué)習(xí)java的痛苦,沒(méi)有一個(gè)好的老師教導(dǎo),像我只能學(xué)到哪里是哪里,如果身邊由專業(yè)的大拿可能我一分鐘就解決問(wèn)題了。但很可惜沒(méi)有,如果你也是小白,可以關(guān)注我一下,也許我們?cè)谝靶U成長(zhǎng)的過(guò)程中也會(huì)遇到同樣的問(wèn)題。
謝謝觀看
總結(jié)
以上是生活随笔為你收集整理的JavaEclipse中从Lambada表达式运行错误的解决方法到学到新知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员主流代码编辑器,你用过多少款?
- 下一篇: Java面试题及答案,javaSE阶段