在我的項目,我們將使用Java 7 maven-compiler-plugin
,我們假設Maven的編譯後,所有這一切是用Java 8中的代碼不應該編譯成功。Maven的編譯器插件和Java 7配置,但仍編譯的Java 8碼
然而,在我的情況下,存在使用Arrays.stream(T[] array)
可以從Java 8中使用的文件,它仍然編譯成功。以下是一些配置Java版本的pom.xml
文件。請你看看,並給我任何想法,爲什麼我的文件仍然可以編譯成功,雖然我把它配置爲Java 7?
對於pom.xml
,我跳過依賴等,並只列出的屬性和構建。
<properties>
<java.version>1.7</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
而對於我在Java中8使用方法的文件,該行是這樣的:
buffer.append(Arrays.stream(arg).collect(Collectors.joining("/")));
而我想的是,既然我配置Java版本是7的Maven並且在編譯之後,使用Java 8的文件不應該成功編譯並顯示錯誤,例如「...僅在源級1.8或更高版本中允許」。
非常感謝!我對此有了更多的瞭解!真的很棒的解釋! – TryMyBest
你的回答是正確和詳細的。謝謝! – sudoz