2016-09-06 71 views
0

我在intellij中使用了Xtend,使用Xtend-plugin。我的项目语言级别设置为Java 8,Xtend可以很好地编译为Java 8(例如使用lambda表达式)。Xtend force java 7语言级别

由于具体原因,我需要Xtend生成Java 7代码,而不更改剩余项目(Java 8)的语言级别。

在Xtend项目设置中,我可以设置语言级别,但是忽略此选项。我相信它被忽略了,因为剩下的项目仍然使用JDK 8和Java 8语言级别。

是否有强制Xtend使用不同语言级别的选项?

+0

Java 7代码完全兼容Java 8代码。你有什么证据证明这个设置被忽略? – Makoto

+0

它生成lambda表达式。生成的代码用于GWT客户端,不支持新的Java 8功能。 – fwind

回答

0

至少有一个bug中的Xtend编译器这样可以防止交叉编译到比项目类路径中的版本更低的JDK版本。

实施例:

#[ 42, 43 ].forEach[ println(it) ] 

如果如果配置的项目以具有在类路径 Java的8类,生成的Java码将自动使用Java-8 API(该forEach默认方法IterableConsumer,...)

这是相关的任何源/目标级别设置。

0

我没有很多细节上对上述问题,但假设如果该项目是基于Maven的,那么你可以在pom.xml目标编译

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId> 
<version>3.5.1</version> 
<configuration> 
    <source>1.7</source> 
    <target>1.7</target> 
</configuration> 
</plugin>