GWT中的Java 8支持

Yon*_*ree 47 gwt java-8

这似乎是一个非常基本的问题,但我搜索得很高,并且发现几乎没有提到任何地方.所以,我会在这里问一下.

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

此外,建议的Java 8库的哪个子集用于客户端仿真?Stream API?新的日期/时间API?

最后,关于这个重要主题的讨论在哪里进行?我敢肯定,我们中有许多人愿意参与并可能为此付出努力.

Java 8测试版现在已经存在了一段时间,并且有许多文章讨论了提议的API.它应该在今年晚些时候相关,所以似乎过去的时间至少要讨论如何以及何时将非常需要的语言功能引入GWT.

如果这个问题在其他地方得到解答,或者我错过了一些与之相关的重要信息,我很抱歉.即使已经回答,这也是获取此类信息链接的好地方.谢谢!

Tho*_*yer 50

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

编辑为2014年4月的,GWT 2.6支持Java 7和工作正在进行中支持Java 8 GWT 2.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(字符串在交换机中出现,因为它们可以直接映射到JavaScript,而不hashCode需要Java编译器将要进行的基于desugaring的操作).

只要GWT使用JDT进行Java解析/修改/编译,只有当JDT支持它时才能支持Java 8(在可接受的级别,AFAICT尚不是这种情况).

  • @StefanFalk不,不可能.`java.time`可以(部分地)在JS原语之上实现,但有人必须贡献它(参见https://github.com/gwtproject/gwt/issues/611和https://github.com/ MMM/GWT时间) (3认同)

Wla*_*idt 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网站尚未更新,但GWT网站上的变更请求已经准备就绪,正在审核过程中.很快就会有下载的编译版本!

可供下载

更新(2016年9月)

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

GWT的团队(丹尼尔Kurka)发布了GWT 2.8.0(RC2)版本在这里.

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

Bug修复

  • 修复不正确的不可用js警告.
  • 修复DevMode服务器(jetty)重启的问题.
  • 通过更改编译器选项来修复超级开发模式中的问题,而不会触发完全重新编译.
  • 向DevMode入口点添加了缺少的命令行参数
  • 修复了String中的性能回归.

RC1的发行说明可在官方网站上获得.以下是即将推出的GWT 2.8.0中有关Java 8支持的最重要变化:

强调

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

JDK 8仿真支持

  • 模拟java.io.UncheckedIOException.
  • Emulate Optional及其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团队很快就会解决这些问题.最终版本即将发布("一旦准备就绪").