4

尝试使用Maven编译我的代码时遇到一个奇怪的编译错误,我的代码在 Eclipse 中工作,我正在使用Java 8Files.lines读取文件。

[INFO] Compiling 8 source files to /Users/nilemarbarcelos/Dev/ConferenceTrackManager/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/nilemarbarcelos/Dev/ConferenceTrackManager/src/main/java/com/nilemarbarcelos/FileInputHandler.java:[29,69] incompatible types: java.util.List<java.lang.Object> cannot be converted to java.util.List<java.lang.String>
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.122 s
[INFO] Finished at: 2015-05-03T14:26:41-03:00
[INFO] Final Memory: 14M/211M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project ConferenceTrackManager: Compilation failure
[ERROR] /Users/nilemarbarcelos/Dev/ConferenceTrackManager/src/main/java/com/nilemarbarcelos/FileInputHandler.java:[29,69] incompatible types: java.util.List<java.lang.Object> cannot be converted to java.util.List<java.lang.String>
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

代码如下:

List<String> lines = null;
        try {
            URL path = getClass().getClassLoader().getResource(source);
            if (Objects.isNull(path)) {
                throw new FileNotFoundException("File not found");
            }
            lines = Files.lines(Paths.get(path.toURI())).collect(Collectors.toList());

我在哪里使用collect()方法。

谁能帮我解决这个错误?

4

2 回答 2

3

你这里没有你的 POM,但你可能没有指定 JDK

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

一旦你将它添加到<plugins>你的 POM 部分并执行 a mvn clean install,错误应该会自行解决。

于 2015-05-03T17:38:25.433 回答
2

看起来你的 pom 文件被省略了maven-compiler-plugin

默认情况下,Maven for compilestage 不使用 1.8 版本的 JDK。

于 2015-05-03T17:40:09.810 回答