日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 编译 器 ide_Java 8发布一年后,IDE和编译器尚未完全就绪

發(fā)布時(shí)間:2023/12/3 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 编译 器 ide_Java 8发布一年后,IDE和编译器尚未完全就绪 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java 編譯 器 ide

一年前, 2014年3月18日 ,發(fā)布了Java SE 8,并通過lambda表達(dá)式和streams API帶來了功能性編程的幸福。 這對于我們所有的Java生態(tài)系統(tǒng)都是個(gè)好消息,許多人已經(jīng)升級(jí)到Java8。Stack Overflow已經(jīng)提出了將近2500個(gè)有關(guān)Java 8的問題 ( Brian Goetz 親自 回答了 )。 此外, Google趨勢顯示搜索量大幅度增加

但是即使在一年之后,javac編譯器和三個(gè)主要的IDE編譯器都尚未完全支持Java 8。 最近,在堆棧溢出中詢問了用戶問題的這個(gè)問題:

Lambda類型推論推斷Lambda未拋出的異常類型

該問題顯示以下代碼:

class TestException extends Exception { }interface Task<E extends Exception> {void call() throws E; }public class TaskPerformer {private <E extends Exception> void perform(Task<E> task) throws E {task.call();}public static void main(String[] args) {// compilation errornew TaskPerformer().perform(() -> {try {throw new TestException();} catch (TestException e) {return;}});} }

誤報(bào)編譯錯(cuò)誤可能已通過問題429430解決 。 在任何情況下,它都不能與Eclipse 4.5.0 M5一起復(fù)制,它可以作為開發(fā)人員版本使用

使用Java 8,編譯Java代碼實(shí)際上從未比以前更加容易。 上面的錯(cuò)誤是由以下幾種非常細(xì)微的組合產(chǎn)生的:

  • 已檢查與未檢查的異常
  • 泛型(和例外)
  • Lambda表達(dá)式
  • 類型推斷
  • 流量分析

如果您曾經(jīng)看過編譯器源代碼,那么您不禁會(huì)為其他人為您完成這項(xiàng)工作感到高興( 順便說一句,當(dāng)您查看jOOQ或Hibernate的源代碼時(shí)也是如此)。

我們的編譯器在哪里?

我們到了那里。 我個(gè)人的感覺是,javac的早期訪問版本最有效。 例如,我正在使用

build 1.8.0_40-ea-b23

(免責(zé)聲明:本文是在發(fā)表之前撰寫的。1.8.0_40現(xiàn)在已解決許多問題)

…雖然,您可能不想使用這樣的早期訪問版本進(jìn)行生產(chǎn)。 當(dāng)然,使用javac和Maven進(jìn)行構(gòu)建的IDE可以同樣好地工作。 Eclipse有點(diǎn)滯后–有時(shí)可能很煩人。

你們中的一些非Eclipse用戶可能會(huì)傻笑起來并準(zhǔn)備好Eclipse與IntelliJ rants,并且您知道……有這樣的說法:

素食主義者,IntelliJ用戶,Mac用戶和Linux用戶走進(jìn)了酒吧。

我怎么知道?

2分鐘后,全黑酒吧知道!

( 關(guān)于該主題,我們實(shí)際上有整篇文章 )

事實(shí)是,所有編譯器團(tuán)隊(duì)都在努力修復(fù)大量錯(cuò)誤。 即使使用Javac進(jìn)行編譯,IntelliJ仍可能在您的IDE中直觀地顯示一些誤報(bào)。 NetBeans的Geertjan最近修復(fù)了我們報(bào)告的一堆bug 。 而且,Eclipse附帶了自己的非常復(fù)雜的增量Java編譯器。 這是用于快速原型制作的出色編譯器,但缺點(diǎn)是它的編譯內(nèi)容與其他代碼略有不同。

在開發(fā)jOOQ和jOOλ的同時(shí) ,我們發(fā)現(xiàn)了Eclipse中的許多錯(cuò)誤-許多錯(cuò)誤已在Eclipse Mars中修復(fù)。 例如:

  • 從lambda表達(dá)式推斷出錯(cuò)誤的通用方法類型
  • 單擊Lambda箭頭上的F3和Double Colon運(yùn)算符不起作用
  • Lambda可以非法傳遞給不可見的方法參數(shù)
  • 在Lambda表達(dá)式中自動(dòng)完成時(shí)插入了多余的分號(hào)
  • Diamond運(yùn)算符阻止建議創(chuàng)建新的構(gòu)造函數(shù)
  • 從lambda表達(dá)式中訪問不可見成員會(huì)產(chǎn)生誤導(dǎo)性的編譯錯(cuò)誤
  • 當(dāng)lambda表達(dá)式將靜態(tài)方法調(diào)用與裝箱/拆箱和一元減運(yùn)算符組合在一起時(shí),會(huì)產(chǎn)生錯(cuò)誤的編譯錯(cuò)誤
  • 還有很多…

我們到了那里。 如果可以,請使用lambda和流,并在代碼中盡可能多地使用類型推斷。 并且,如果您發(fā)現(xiàn)錯(cuò)誤,請報(bào)告。 我們可能都在使用這三個(gè)IDE之一。 您報(bào)告的每個(gè)錯(cuò)誤對于采用Java 8的障礙都較小。

以下是開始注冊錯(cuò)誤的鏈接:

  • Eclipse: https : //bugs.eclipse.org/bugs
  • IntelliJ: https : //youtrack.jetbrains.com
  • NetBeans: https : //netbeans.org/bugzilla

翻譯自: https://www.javacodegeeks.com/2015/03/one-year-after-java-8s-release-ides-and-compilers-are-not-fully-ready-yet.html

java 編譯 器 ide

總結(jié)

以上是生活随笔為你收集整理的java 编译 器 ide_Java 8发布一年后,IDE和编译器尚未完全就绪的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。