GWT中的Java 8支持

这似乎是一个非常基本的问题,但是我search了很多,几乎没有发现任何地方。 所以,我会在这里问。

在GWT中支持Java 8的新语言结构的当前计划是什么?

另外,提议的Java 8库的哪个子集将用于客户端仿真? streamAPI? 新的date/时间API?

最后,关于这个重要议题的讨论在哪里进行? 我确信有很多人愿意参与这项工作,并可能对此做出贡献。

Java 8 beta版已经出现了一段时间,并且有很多文章讨论了这些API。 今年晚些时候它应该是相关的,所以似乎过去至less是在讨论如何以及何时将期望的语言特征引入GWT。

我很抱歉,如果这个问题在别的地方回答,或者如果我错过了一些重要的相关信息。 即使已经得到解答,这将是一个链接到这些信息的好地方。 谢谢!

时间来更新答案。

更新(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网站还没有更新,但GWT网站上的更改请求已经准备就绪,正在审核过程中 。 所以编译后的版本很快就可以下载了!

可供下载

更新(2016年9月)

同时,GWT团队已经在GitHub镜像上标记了GWT 2.8.0 RC3 。

GWT团队(Daniel Kurka)在这里发布了GWT 2.8.0(RC2)版本。

发行说明适用于2.8.0(RC2):

Bug修复

  • 修复不正确的不可用js警告。
  • 修复DevMode服务器(jetty)重启的问题。
  • 修改超级开发模式下的问题,改变编译器选项而不触发完整的重新编译。
  • 添加缺less的命令行参数到DevMode入口点
  • 修复了String中的性能回归。

RC1的发行说明可在官方网站上查阅 。 以下是关于即将到来的GWT 2.8.0中的Java 8支持的最重要的变化:

强调

  • 部分支持Java 8标准库API(请参阅下面的完整列表)。
  • 用Java 8编译修复内存泄漏
  • 源级别设置为Java 8。
  • 接口中的静态方法和默认方法对于生成器是不可见的。 如果您想要利用这些Java-8isms,build议您切换到注释处理器。 如果更改接口以将非默认方法变成默认方法,这可能会破坏现有的构build。

JDK 8仿真支持

  • 仿真java.io.UncheckedIOException。
  • 模拟可选的和它的int,long,double变体。
  • 仿真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.Comprator接口,
    • 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团队很快就会解决这个问题。 最终的版本应该很快就会出版(“一旦准备就绪”)。

编辑 GWT 2.8.0于2016年10月20日发布,支持Java 8语言结构(lambdas,方法引用)和一些Java 8 API(主要是stream)

编辑截至2014年4月,GWT 2.6支持Java 7,目前正在开展工作以支持GWT 2.7中的Java 8,并将于2014年夏季发布。尽pipeGWT 2.7可能只支持Java 8语言结构,并没有模拟任何新的API(stream,javax.time等)


该计划是首先支持Java 7: https : //github.com/gwtproject/gwt/labels/java7

这涉及更新JDT,并且正在进行(或者完全切换到其他东西; JetBrainsbuild议使用已经支持Java 8的parsing器,但是GWT也需要一个编译器,我不知道它们提供了什么)。 接下来的步骤是将新的语言结构映射到JavaScript中(string在切换中,因为它们可以直接映射到JavaScript,而不需要基于hashCode的Java编译器将会这样做)。

只要GWT使用JDT进行Javaparsing/pipe理/编译,Java 8就只能在JDT支持JDT时支持(在可接受的级别,这还不是AFAICT的情况)。