2016-02-03 2 views
1

Это ошибка в программном обеспечении IntelliJ (16, 144.3357.4), и мне интересно, как временно обходить его, пока я жду исправления. Для соображений обратной совместимости я создаю кросс-платформенное приложение, которое использует retrolambda и API потоков annimon. Однако эта ошибка возникает, если я переключусь на Java 1.8+ и удаляю эти пакеты.Обход ложных ошибок IntelliJ с Stream.of

Я больше не могу использовать Stream.of (... некоторые Iterable ...), не получая много ложных ошибок такого рода:

Both: 
List<? extends T> in Stream and 
Iterable<? extends T> in Stream match 

Я могу подтвердить, я только когда-либо импортировать annimon Стрим-классы --- нет смешанного импорта из Java API, и когда я переключусь на Java 1.8+, это тоже самое. Если я ступаю в источник через байт-кода декомпиляции, я действительно вижу методы с (потенциально) же стиранием:

public static <T> Stream<T> of(final List<? extends T> list) 
public static <T> Stream<T> of(Iterable<? extends T> iterable) 

Кастинг мои объекты решает эту ошибку, но приводит к не-человек-оформленной кода и длительным звонки на номер Stream.of. Я должен также отметить, что это только проблема со времени последней версии. Ясно, что проблема заключается в том, что List также реализует Iterable, поэтому он не может решить, какой метод я планировал.

Есть ли способ разрешить или устранить эти ошибки без приведения типов?

Я понимаю, что могу перейти на более раннюю версию, но мне интересно, есть ли более простое исправление.

+0

Какую версию Intellij вы используете? – ChiefTwoPencils

+0

@ChiefTwoPencils Добавлено. – EntangledLoops

+0

Я, супруг, это EAP; правильно? Это может быть сильной возможностью. Возможно, вы сможете получить отчет о ходе работы на сайте JetBrains. – ChiefTwoPencils

ответ

0

Эта проблема была решена в обновлении толкнул утром:
IntelliJ IDEA (Community Edition) IC-144.3600.7
Сложение # IC-144,3600, построенный на 2 февраля 2016

0

Если ошибка отображается только в редакторе, а не когда в окне инструмента сообщений, когда вы делаете проект, вы можете просто проигнорировать его, ваш проект будет по-прежнему строить и запускать.

+0

Вы говорите «вы можете игнорировать это», но это была распространенная ошибка над большим проектом, и я не мог определить, какие файлы содержат законные ошибки. – EntangledLoops

+0

Да, это было бы не очень удобно. Я просто подумал, что упомянул об этом для кого-то другого, у кого есть такая проблема. –

Смежные вопросы