49

これは非常に基本的な質問のように思えますが、高低を検索しましたが、どこにもほとんど言及されていません。では、ここで質問させていただきます。

GWT で Java 8 の新しい言語構造をサポートするための現在の計画は何ですか?

さらに、提案されたJava 8ライブラリのどのサブセットがクライアント側のエミュレーションに予定されていますか? ストリーム API? 新しい日付/時刻 API?

最後に、この重要なトピックに関する議論はどこで行われているのでしょうか? この取り組みに参加し、貢献したいと考えている人はたくさんいると思います。

Java 8 ベータ版が登場してからしばらく経ち、提案された API について議論する記事が数多くあります。今年後半に関連するはずなので、少なくとも、待望の言語機能がいつ、どのように GWT に組み込まれるかについて議論するのは時期尚早のようです。

この質問が別の場所で回答されている場合、またはそれに関連する重要な情報を見逃していた場合は、お詫び申し上げます。これは、回答があったとしても、そのような情報へのリンクを張るのに最適な場所です。ありがとう!

4

2 に答える 2

50

EDIT GWT 2.8.0 は 2016 年 10 月 20 日にリリースされ、Java 8 言語構造 (ラムダ、メソッド参照) といくつかの Java 8 API のエミュレーション (主にストリーム) のサポートを備えています。

EDIT 2014 年 4 月現在、GWT 2.6 は Java 7 をサポートしており、2014 年夏までにリリースされる予定の GWT 2.7 で Java 8 をサポートする作業が進行中です。 API (ストリーム、javax.time など)


最初に Java 7 をサポートする予定です: https://github.com/gwtproject/gwt/labels/java7

これには JDT の更新が含まれ、これは現在取り組んでいます(または、完全に別のものに切り替えます。JetBrains は、既に Java 8 をサポートしているパーサーを使用することを提案しましたが、GWT にはコンパイラーも必要であり、彼らが正確に何を提供するのかわかりません)。次のステップは、新しい言語構造を JavaScript にマップすることです (strings-in-switch が思い浮かびますhashCode。これは、Java コンパイラーが行うようなベースの desugar なしで直接 JavaScript にマップできるからです)。

GWT が Java の解析/変更/コンパイルに JDT を使用している限り、Java 8 は、JDT がサポートする場合にのみサポートされます (許容レベルで、まだ AFAICT ではありません)。

于 2013-03-28T22:49:26.057 に答える
20

答えを更新する時間です。

更新 (2020 年 5 月 13 日)

GWT 2.9.0 がついに登場。リリースノート

  • jsinterop-base 1.0.0、elemental2 1.0.0、および jsinterop-annotations 2.0.0 でプロジェクトをコンパイルできます。@JsAsync と @JsEnum を除いて、これにより GWT2 は J2CL を使用してこれらのツール間で互換性を持つようになります。
  • Java 言語レベル 9、10、および 11 のサポートが追加されました。
  • 正式には、Java 7 で GWT コンパイラーまたはサーバー側ツールを実行するためのサポートが廃止されました。GWT ディストリビューションは、このリリースの Java 7 で実行するようにコンパイルされていますが、これが機能するかどうかについては保証されません。将来のバージョンでは、Java 8+ のバイトコードをコンパイルします。このリリースはテスト済みで、Java 8、11、および 14 で実行すると、クロスプラットフォームで動作することがわかりました。

更新 (2017 年 10 月)

GWT 2.8.2 はこちらから入手できますリリースノート

更新 (2017 年 6 月)

GWT 2.8.1 の公式ダウンロード場所。

2.8.1 のリリースノート

更新 (2016 年 10 月)

GWT 2.8.0 がついに登場!

GWT チームはGithubで 2.8.0 タグをリリースしました。GWT の公式 Web サイトはまだ更新されていませんが、GWT の Web サイトの変更に関するプル リクエストは準備ができており、審査中です。そのため、すぐにコンパイルされたバージョンがダウンロードできるようになります!

ダウンロード可能

更新 (2016 年 9 月)

一方、チーム GWT はGitHub ミラーでGWT 2.8.0 RC3のタグを付けました。

GWT チーム (Daniel Kurka) は GWT 2.8.0 (RC2) バージョンをここでリリースしました。

2.8.0 (RC2) のリリース ノートを利用できます。

バグの修正

  • unusable-by-js の誤った警告を修正しました。
  • DevMode サーバー (jetty) の再起動に関する問題を修正します。
  • コンパイラ オプションを変更しても完全な再コンパイルがトリガーされない、スーパー開発モードの問題を修正します。
  • 不足しているコマンド ライン パラメーターを DevMode エントリ ポイントに追加しました
  • String のパフォーマンスの低下を修正しました。

RC1 のリリース ノートは、公式 Web サイトで入手できます。次の GWT 2.8.0 での Java 8 サポートに関する最も重要な変更点は次のとおりです。

ハイライト

  • Java 8 標準ライブラリ API の部分的なサポート (完全なリストについては、以下を参照してください)。
  • Java 8 コンパイルでのメモリ リークを修正します。
  • ソースレベルはJava 8に設定。
  • インターフェイスの静的メソッドと既定のメソッドは、ジェネレーターには表示されません。これらの Java-8isms を利用したい場合は、注釈プロセッサに切り替えることをお勧めします。デフォルト以外のメソッドをデフォルト メソッドに変更するようにインターフェイスが変更された場合、既存のビルドが壊れる可能性があります。

JDK 8 エミュレーションのサポート

  • java.io.UncheckedIOException をエミュレートします。
  • Optional とその int、long、double バリアントをエミュレートします。
  • メッセージ Supplier で Objects.requireNonNull() をエミュレートします。
  • Math.min/max(float/double) エミュレーションの動作を修正しました。
  • Character.isBmpCodePoint() をエミュレートします。
  • CharSequence.chars() をエミュレートします。
  • java.lang.SecurityException をエミュレートします。
  • の Java 8 API をエミュレートする
    • java.util.Arrays、
    • java.util.ArrayDeque、
    • java.math.BigInteger、
    • java.util.BitSet、
    • java.util.Comparator、
    • java.util.関数、
    • java.util.Iterator、
    • java.lang.Iterable、
    • java.util.IntSummaryStatistics/LongSummaryStatistics/DoubleSummaryStatistics
    • java.util.Collection/Lists/Queues,
    • 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 チームはすぐに修正する予定です。最終リリースはすぐに公開されるはずです (「準備が整い次第」)。

于 2016-09-10T19:48:01.263 に答える