GWT中的Java8支持

GWT中的Java8支持,gwt,java-8,Gwt,Java 8,这似乎是一个非常基本的问题,但我到处寻找,几乎没有发现任何地方提到它。所以,我会在这里问 目前在GWT中支持Java 8新语言结构的计划是什么? 此外,建议的Java8库中有哪些子集计划用于客户端仿真?流API?新的日期/时间API 最后,关于这个重要议题的讨论在哪里进行?我相信我们中有很多人愿意参与这项工作,并可能为之做出贡献 Java8Beta已经存在了一段时间,有很多文章讨论了提议的API。本应在今年晚些时候与之相关,因此至少讨论急需的语言特性将如何以及何时进入GWT似乎已经过去了 如果这

这似乎是一个非常基本的问题,但我到处寻找,几乎没有发现任何地方提到它。所以,我会在这里问

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

此外,建议的Java8库中有哪些子集计划用于客户端仿真?流API?新的日期/时间API

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

Java8Beta已经存在了一段时间,有很多文章讨论了提议的API。本应在今年晚些时候与之相关,因此至少讨论急需的语言特性将如何以及何时进入GWT似乎已经过去了


如果这个问题在其他地方得到了回答,或者我错过了一些与之相关的重要信息,我深表歉意。这将是一个伟大的地方,有一个链接到这些信息,即使它已经得到答复。谢谢

EDITGWT 2.8.0于2016年10月20日发布,支持Java 8语言构造(lambdas,方法引用)和一些Java 8 API的模拟(主要是流)

编辑自2014年4月起,GWT 2.6支持Java 7,目前正在进行工作,以支持将于2014年夏季发布的GWT 2.7中的Java 8。GWT2.7可能只支持Java8语言构造,而不模拟任何新的API(streams、javax.time等)


计划首先支持Java 7:

这涉及到更新JDT,这是(或者完全切换到其他东西;使用他们已经支持Java8的解析器,但GWT也需要一个编译器,我不知道他们提供了什么)。接下来的步骤是将新的语言结构映射到JavaScript(想到switch中的字符串,因为它们可以直接映射到JavaScript,而无需Java编译器所做的基于
hashCode
的去语法)


只要GWT使用JDT进行Java解析/挖掘/编译,Java 8只有在JDT支持的情况下才能得到支持(在可接受的级别上,AFAICT还不是这样)。

是时候更新答案了

更新(2020年5月13日)

GWT 2.9.0

  • 能够使用JSInteropBase1.0.0、Elemental21.0.0和JSInteropAnnotations2.0.0编译项目。除了@JsAsync和@JsEnum之外,这使GWT2与J2CL兼容
  • 增加了对Java语言级别9、10和11的支持
  • 正式地,对在Java7上运行GWT编译器或服务器端工具的支持被取消。GWT发行版仍然编译为在Java7上运行,但没有保证这是否有效。未来版本将编译Java8+的字节码。该版本经过测试,发现在使用Java8、11和14运行时可以跨平台工作
更新(2017年10月)

GWT 2.8.2

更新(2017年6月)

官方GWT 2.8.1位置

更新(2016年10月)

GWT2.8.0终于到了

GWT团队已经发布了上的2.8.0标签。GWT官方网站尚未更新,但GWT网站上的变更请求正在更新中。所以很快编译后的版本就可以下载了

更新(2016年9月)

与此同时,GWT团队已经在GitHub mirror上进行了标记

GWT团队(Daniel Kurka)发布了GWT 2.8.0(RC2)版本

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

错误修复

  • 修复错误的不可用的js警告
  • 修复有关DevMode服务器(jetty)重新启动的问题
  • 修复超级开发模式下更改编译器选项而不触发完全重新编译的问题
  • 将缺少的命令行参数添加到DevMode入口点
  • 修复了字符串中的性能回归
RC1的发行说明可在上获得。以下是即将发布的GWT 2.8.0中有关Java 8支持的最重要的更改:

亮点

  • 部分支持Java8标准库API(完整列表见下文)
  • 使用Java 8编译修复内存泄漏
  • 源代码级别设置为Java8
  • 接口中的静态和默认方法对生成器不可见。如果您想利用这些Java-8ISM,建议您切换到注释处理器。如果将接口更改为将非默认方法转换为默认方法,这可能会破坏现有的构建
JDK 8仿真支持

  • 模拟java.io.UncheckedIOException
  • 模拟可选及其int、long和double变体
  • 使用消息提供者模拟Objects.requirennull()
  • 修复Math.min/max(float/double)仿真行为
  • 模拟Character.isBmpCodePoint()
  • 模拟CharSequence.chars()
  • 模拟java.lang.SecurityException
  • 仿真的Java8API
    • java.util.array
    • java.util.ArrayDeque
    • java.math.biginger
    • java.util.BitSet
    • java.util.Comparator
    • java.util.function
    • java.util.Iterator
    • java.lang.Iterable
    • java.util.IntSummaryStatistics/LongSummaryStatistics/DoubleSummaryStatistics
    • java.util.Collection/list/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团队预计将解决这些问题