Falsch positiver Fehler in Intellij "foreach nicht anwendbar auf" java.util.list <AIG_proxy_Service.routes.Route> '"nach
Posted: 10 Apr 2025, 07:36
Ich habe kürzlich mein Spring Boot -Projekt auf Java 21 aktualisiert. Bootrun funktioniert immer noch und alle Tests bestehen. In Intellij wird jedoch immer noch ein Fehler an diesem Ort angezeigt: < /p>
Es markiert den Auth in der For-Loop als Fehler und sagt:
als Referenz, so sieht die methode getAuth () so aus, dass dies wichtig sein könnte:
nicht beheben kann, aus der es aus dem Verhalten erbt, was zumindest das Verhalten erklären würde, da die Erbrüche von iTerable erfolgt. Die sequenzierte Collection wird auch nicht in den externen Schützen von Intellij angezeigt, obwohl die Sammlung und iterable sind. Ich konnte auch bestätigen, dass die sequenzierte Collection in den Quelldateien meines JDK selbst vorhanden ist. Es sieht so aus, als hätte Intellij es verpasst. Aber ich habe keine Ahnung warum.>
Code: Select all
List auth = routeProperties.getAuth();
for (Route authRoute : auth) {
addAuthRoute(authRoute);
}
Code: Select all
Foreach not applicable to type 'java.util.List'
Code: Select all
@Component
@ConfigurationProperties(prefix = "routes")
public class RouteProperties {
@Setter
private List auth;
public List getAuth() {
if (auth == null) {
auth = new ArrayList();
}
return auth;
}
}
< /code>
Da der Code noch ausgeführt wird und die Tests noch bestehen, gehe ich davon aus, dass dies auf der Seite von Intellij ein falsch positives ist. Also habe ich alles ausprobiert, was ich mir vorstellen kann, um dies loszuwerden. Dinge, die ich ausprobiert habe, sind: < /p>
Gradle Clean & Gradle Build < /li>
Deleting des .idea -Ordners < /li>
Deleting des Build -Ordners < /li>
uikidate yarty. />
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
< /code>
< /li>
java {
sourceCompatibility = 21
targetCompatibility = 21
}
< /code>
< /li>
< /ul>
< /li>
< /ul>
Die falsch positive positive bestand in beiden Fällen. Die Ergebnisse
Ich fand, dass, wenn ich die Liste der Liste intellij öffne, aus irgendeinem seltsamen Grund besagt, dass sie sequenzierte Collection