Ложная позитивная ошибка в IntelliJ «Foreach не применим к типу 'java.util.list <aig_proxy_service.routes.route>'» послеJAVA

Программисты JAVA общаются здесь
Anonymous
Ложная позитивная ошибка в IntelliJ «Foreach не применим к типу 'java.util.list <aig_proxy_service.routes.route>'» после

Сообщение Anonymous »

Недавно я обновил свой Spring Boot Project до Java 21. Bootrun все еще работает, и все тесты проходят. Однако в IntelliJ в этом месте все еще отображается ошибка: < /p>

Код: Выделить всё

        List auth = routeProperties.getAuth();
for (Route authRoute : auth) {
addAuthRoute(authRoute);
}
это отмечает Auth в For-Ploop как ошибку, говоря:

Код: Выделить всё

Foreach not applicable to type 'java.util.List'
Для справки, вот как выглядит метод getauth () , если это может быть важно:

Код: Выделить всё

@Component
@ConfigurationProperties(prefix = "routes")
public class RouteProperties {
@Setter
private List auth;

public List getAuth() {
if (auth == null) {
auth = new ArrayList();
}
return auth;
}
}
< /code>
Поскольку код все еще работает, а тесты все еще проходят, я предполагаю, что это ложный положительный на сторону Intellij. Поэтому я попробовал все, что могу подумать, чтобы избавиться от этого. Вещи, которые я пробовал: < /p>

 Gradle Clean & Gradle Build < /li>
 Удаление папки .idea < /li>
 Удаление сборки сборки < /li>
 File> Invalidate Mashes ...> Использование и Restart < /li>
 file> INSALIDATE ...> Использование и вернуть < /li>
. Оба:


java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
< /code>
< /li>

java {
sourceCompatibility = 21
targetCompatibility = 21
}
< /code>
< /li>
< /ul>
< /li>
< /ul>
Однако ложно -позитивность сохраняется в любом случае. Findings
I found that if I open the List.java source file in IntelliJ, for some strange reason, it says that it can't resolve SequencedCollection
, from which it inherits from, which would at least explain the behavior, because SequencedCollection inherits from Collection, which inherits from Iterable, which has the forEach method. SeceedcenceCollection не отображается во внешних сорнях IntelliJ, хотя Collection и итерационные . Я также смог подтвердить, что SequenceCollection присутствует в исходных файлах самого JDK, просто похоже, что IntelliJ пропустил это. Но я понятия не имею, почему.
Я был теперь также смог подтвердить, что мой SDK содержит Sequecendcollection.class (в \ jdk \ jmods \ java.base.jmod \ classes \ Java \ util \ seceedceedcollection.class ).

Подробнее здесь: https://stackoverflow.com/questions/795 ... -util-list

Вернуться в «JAVA»