我们有一个使用gwt 2.6的旧项目,因此我们需要使用-source 1.7选项进行编译。
使用的JRE和JDK为1.8,但使用1.7源代码选项进行编译。
我们希望使用来自ConcurrentHashMap的新ConcurrentHashMap,它只能从java 8中获得。当使用eclipse和maven时,所有的东西都编译得很好。另一方面,IntelliJ在抱怨。我的问题是,它会起作用还是我们会有问题呢?
这个项目会运行吗?
在谷歌搜索ConcurrentHashmap计算,java 8和源代码级别1.7没有给出任何信息。
发布于 2018-07-23 06:48:36
如果有的话,这将需要大量小心的“手动”工作。
例如,当您查看这个问题时,您可以发现人们希望使用Java 7启用“基于流”的函数式编程的不同想法。也许,在进行了大量研究之后,您可能能够找到类似的关于“增强集合”特性的内容。
但是,所有这些可能都很脆弱。有些示例可能工作得很好,这并不意味着您可以在Java7VM上运行一个大型的生产代码。
因此,这里更多的是没有答案:小心如何投入你的时间和精力。与其尝试将库移植到Java 7,不如至少将整个项目移到Java8上。特别要记住的是,Java发布版cadence已经发生了很大的变化,与几年前相比,使用过时的Java版本更不可取。
发布于 2018-07-23 06:23:53
好吧,简单的答案是,这是行不通的。目标运行时将没有更新的API (也就是说,compute***方法不会出现在Java7所拥有的Map版本上)。
因此,如果部署该代码,运行时将理解类版本,但会引发NoSuchMethodError和类似的错误。
除此之外,升级您的运行时还有许多原因。
https://stackoverflow.com/questions/51472590
复制相似问题