2013-03-28 47 views
45

這似乎是一個非常基本的問題,但我搜索高低,幾乎沒有發現任何地方。所以,我會在這裏問一下。GWT中的Java 8支持

在GWT中支持Java 8的新語言結構的當前計劃是什麼?

此外,擬議的Java 8庫的哪個子集將用於客戶端仿真? Stream API?新的日期/時間API?

最後,關於這個重要議題的討論在哪裏進行?我確信有很多人願意參與這項工作併爲此做出貢獻。

Java 8測試版已經出現一段時間了,並且有許多文章討論了所提議的API。它應該在今年晚些時候有關,所以過去似乎至少在討論如何以及何時將期望的語言特徵引入GWT。

我很抱歉如果在其他地方回答了這個問題,或者我錯過了一些與此相關的重要信息。即使已得到回答,這也是獲得此類信息鏈接的好地方。謝謝!

回答

10

更新答案的時間。

更新(2017年10月)

GWT 2.8.2 available hereRelease notes

UPDATE(六月2017)

官方GWT 2.8.1download位置。

Release Notes for 2.8.1

UPDATE(十月2016)

GWT 2.8.0終於來了!

GWT的團隊已經發布了Github的2.8.0標籤。官方的GWT網站尚未更新,但GWT網站上的更改請求是ready and in review process所以非常快,編譯後的版本將可供下載!

Available for download

更新(2016年9月)

同時,團隊GWT已經在GitHub上鏡標記GWT 2.8.0 RC3

的GWT團隊(丹尼爾Kurka)發佈了GWT 2.8.0(RC2)here版本。

的發行說明適用於2.8.0(RC2):

Bug修復

  • 修正不正確無法使用逐JS警告。
  • 修復周圍DevMode的服務器(碼頭)重啓的問題。
  • 解決不斷變化的不觸發全面重新編譯編譯器選項超級開發模式的問題。
  • 添加缺少的命令行參數DEVMODE切入點
  • 固定在一個字符串性能迴歸。

RC1的發行說明可在official website上找到。下面是關於即將到來的GWT 2.8.0的Java 8支持的最重要的變化:

亮點的Java 8標準庫API

  • 部分支持(參見下面的完整列表)。
  • 修復Java 8編譯中的內存泄漏問題。設置爲Java 8.在接口
  • 靜態路由和默認方法
  • 源代碼級別是不可見的發電機。如果您想要利用這些Java-8isms,建議您切換到註釋處理器。如果更改接口以將非默認方法變爲默認方法,這可能會破壞現有的構建。

JDK 8仿真支持

  • 效仿java.io.UncheckedIOException。
  • 仿真可選和它的int,long,double變體。
  • 仿真Objects.requireNonNull()與消息供應商。
  • 修復Math.min/max(float/double)仿真行爲。
  • 仿真Character.isBmpCodePoint()。
  • Emulate CharSequence.chars()。
  • Emulate java.lang.SecurityException。
  • 效仿的Java API 8的
    • java.util.Arrays中,
    • java.util.ArrayDeque中,
    • java.math.BigInteger中,
    • java.util.BitSet中,
    • 的java .util.Comparator,
    • java.util.function,
    • java.util.Iterator的,
    • 的java.lang .Iterable,
    • java.util.IntSummaryStatistics/LongSummaryStatistics/DoubleSummaryStatistics
    • java.util.Collection中/列表/隊列,
    • java.util.Map,
    • java.util.logging.Logger中,
    • java.util.PrimitiveIterator,
    • java.util.Spliterator,
    • java.util.stream,
    • java.util.StringJoiner

GWT 2.8.0 RC2仍然存在一些問題,GWT團隊很快就會解決問題。最終版本應該即將推出(「一旦準備就緒」)。

46

編輯 GWT 2.8.0發佈於2016年10月20日與8的Java語言結構(lambda表達式,方法引用)和仿真一些Java 8的API支持(主要是流)

編輯爲2014年4月,GWT 2.6支持Java 7,目前正在開發支持GWT 2.7中的Java 8的工作,並將於2014年夏季發佈.GTT 2.7很可能僅支持Java 8語言構造,並且不會模擬任何新API(流,javax.time等)


該計劃首先支持Java 7:https://github.com/gwtproject/gwt/labels/java7

這涉及到更新JDT,這是worked on(或者,也可以完全切換到其他的東西; JetBrains proposed使用他們已經支持Java 8的解析器,但GWT也需要一個編譯器,我不知道他們準確提供了什麼)。接下來的步驟是將新的語言結構映射到JavaScript(字符串在開關中,因爲他們可以直接映射到JavaScript,而不需要基於Java編譯器進行的基於hashCode的解析)。

只要GWT使用JDT進行Java解析/自動/編譯,Java 8只能在JDT支持時支持(在可接受的級別上,這還不是AFAICT的情況)。

+0

有趣! GWT 2.7會使用JetBrains解析器還是更新版本的JDT? –

+1

JDT。如果您想開始使用它,可以預覽下載:https://github.com/WeTheInternet/gwt-sandbox/tree/java8 –

+0

現在的支持情況如何?我發現如果使用lambda表達式來實現事件處理程序的功能接口並且編譯widgetset,那麼widget不能正確創建(至少使用GWT和Vaadin 7.3.10一起使用) – tonix