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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2023/12/3 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 8发布一年后,IDE和编译器尚未完全就绪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一年前,即2014年3月18日 ,發布了Java SE 8,并伴隨著通過lambda表達式和streams API實現了功能性編程的幸福。 這對于我們所有的Java生態系統都是個好消息,許多人已經升級到Java8。Stack Overflow已經提出了大約2500個有關Java 8的問題 ( Brian Goetz 親自 回答了 )。 此外, Google趨勢顯示搜索量大幅度增加

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

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;}});} }

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

使用Java 8,編譯Java代碼實際上從未比以前更加容易。 上面的錯誤是由以下幾種非常細微的組合產生的:

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

如果您曾經看過編譯器源代碼,那么您不禁會為其他人為您完成這項工作感到高興( 順便說一句,當您查看jOOQ或Hibernate的源代碼時,情況也是如此)。

我們的編譯器在哪里?

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

build 1.8.0_40-ea-b23

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

…雖然,您可能不想使用這樣的早期訪問版本進行生產。 當然,使用javac和Maven進行構建的IDE都可以很好地工作。 Eclipse有點滯后–有時可能很煩人。

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

素食主義者,IntelliJ用戶,Mac用戶和Linux用戶走進了酒吧。

我怎么知道?

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

( 關于該主題,我們實際上有整篇文章 )

事實是,所有編譯器團隊都在努力修復大量錯誤。 即使使用Javac進行編譯,IntelliJ仍可能在您的IDE中直觀地顯示一些誤報。 來自NetBeans的Geertjan最近修復了我們報告的一堆bug 。 而且,Eclipse附帶了自己的非常復雜的增量Java編譯器。 這是用于快速原型制作的出色編譯器,但是缺點是編譯內容與其他版本略有不同。

在開發jOOQ和jOOλ的同時 ,我們發現了Eclipse中的許多錯誤-許多錯誤已在Eclipse Mars中修復。 例如:

  • 從Lambda表達式推斷出錯誤的通用方法類型
  • 單擊Lambda箭頭上的F3和Double Colon運算符不起作用
  • Lambda可以非法傳遞給不可見的方法參數
  • 在Lambda表達式中自動完成時插入了多余的分號
  • 菱形運算符阻止建議創建新的構造函數
  • 從lambda表達式內部訪問不可見成員會產生誤導性的編譯錯誤
  • 當lambda表達式將靜態方法調用與裝箱/拆箱和一元減運算符組合在一起時,會產生錯誤的編譯錯誤
  • 還有很多…

我們到了那里。 如果可以,請使用lambda和流,并在代碼中盡可能多地應用類型推斷。 而且,如果您發現錯誤,請報告。 我們可能都在使用這三個IDE之一。 您報告的每個錯誤對于采用Java 8的障礙都較小。

以下是開始注冊錯誤的鏈接:

  • 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 8发布一年后,IDE和编译器尚未完全就绪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。