Eclipse 编译错误:无法解析类型 java.util.Collection。它是从所需类型 picocli.CommandLine

问题描述 投票:0回答:1

我的 Eclipse IDE 中出现莫名其妙的错误:

无法解析 java.util.Collection 类型。它是从所需类型 picocli.CommandLine

间接引用的

它不允许我迭代 List 对象,如下所示:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import gov.uscourts.bnc.InputReader;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
...
List<ServerRecord> data = execute(hostnames);
    for (ServerRecord record : data) {
      hostInfoList.add(new String[] { record.hostname(), record.ip(), record.mac(), record.os(),
          record.release(), record.version(), record.cpu(), record.memory(), record.name(),
          record.vmware(), record.bios() });
    }

“data”用红色下划线表示:只能迭代数组或 java.lang.Iterable 的实例

尝试清理项目,重建,检查Java版本(21),更新Maven项目,pom.xml指定目标和源为21,删除项目并重新创建它。同样的错误。

这是我的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>gov.uscourts.bnc.app</groupId>
    <artifactId>server-query</artifactId>
    <version>1.0.0</version>
    <name>server-query</name>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>21</maven.compiler.target>
        <maven.compiler.source>21</maven.compiler.source>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>libs/</classpathPrefix>
                            <mainClass>
                                gov.uscourts.bnc.app.CollectServerData
                            </mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>gov.uscourts.bnc</groupId>
            <artifactId>bnc</artifactId>
            <version>1.0.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/info.picocli/picocli -->
        <dependency>
            <groupId>info.picocli</groupId>
            <artifactId>picocli</artifactId>
            <version>4.7.5</version>
        </dependency>
    </dependencies>
</project>

**我刚刚注意到我的所有项目现在都在这样做。我有 8 个正在处理。我在所有这些中都使用 picocli。我肯定对 Eclipse 做了什么并且破坏了一些东西。其中一些经过全面测试并且运行没有任何问题。 **

java eclipse maven
1个回答
0
投票

问题已解决。它就这样消失了。不知道它为什么发生也不知道它为什么消失。

© www.soinside.com 2019 - 2024. All rights reserved.