2011-08-26 27 views
21

例如,JDK 7可以使用switch(String)而不是仅切换(Number/Enum)。GWT与JDK 7新功能的兼容性

如果我写了一个GWT客户端,它的代码中有switch(String),会不会有问题?

switch(String)是我能想到的问题之一。在switch(String)之外是否存在兼容性问题?

+0

你尝试过了(这可以通过使用 -sourceLevel 6覆盖 )? – helpermethod

+2

@OliverWeiler:即使你能自己找出问题也没有问题。这个问题/答案为我节省了很多时间。 –

+0

您可以随时使用JDK7进行编译,但不能使用这些功能。这仍然是一个选择。 – Brian

回答

11

GWT才正式支持Java 5,它不支持的一些Java 6中的,虽然,如允许@Overrides上实现一个接口方法的方法,并String.isEmpty(尽管一个是关于运行仿真,所以它不涉及语法和编译器)。

顺便说一下,GWT使用Eclipse JDT进行分析,并且还没有发布支持Java 7的应用程序(尽管应该来自really soon)。一旦完成,GWT将不得不进行更新,以考虑到Java 7添加的新“语法糖”。当时间到了(可能不会很快来临,唉),我打赌开关字符串将会成为第一个受支持的功能之一,因为JavaScript支持它(所以它应该像从Java到JS一样转换为整数时很容易)。

又见https://groups.google.com/d/topic/google-web-toolkit/dM8D9imIvAI/discussion

+1

我相信Java 6是正式支持的。 – anjanb

+0

将来可能会支持某些Java 7。请参阅https://gwt-review.googlesource.com/#/c/2650/和https://gwt-review.googlesource.com/#/c/2681/) – Gewthen

11

作为最后的答案是从2011年8月,这里是为GWT 2.5的更新:对Java 7仍然没有支持,请参阅Release Notes for GWT 2.5 RC2(没有从RC2至2.5的最终变化)。

+0

似乎是这样。我想尝试使用java.util.Objects而不是Guava的,但是GWT扼杀了它,尽管这个类在官方的白名单中。除非我在配置中遗漏了一些东西...... – PhiLho

+2

这里是一个更新:开发已经在进行中,详情请看#7999。几天前,所有的Java 7特性都被提交并通过审查。运行时仿真仍然需要一些工作。 请参阅:http://code.google.com/p/google-web-toolkit/issues/detail?id = 7999 – snorbi

+1

另一个更新,来自@snorbi的链接:https://code.google.com/来自9月11日的p/google-web-toolkit/issues/detail?id = 8044#c10似乎将Java 7支持标记为“Milestone-2_6”的“FixedNotReleased” – jfrantzius