我的 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 做了什么并且破坏了一些东西。其中一些经过全面测试并且运行没有任何问题。 **
问题已解决。它就这样消失了。不知道它为什么发生也不知道它为什么消失。