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的情况)。