Как запретить IntelliJ генерировать избыточные приведения в выражениях потока Java 8? - PullRequest
3 голосов
/ 27 июня 2019

Часто, когда я набираю код потока Java 8 в IntelliJ (версия 2019.1.3 Community Edition) и использую автозаполнение, IntelliJ генерирует избыточные приведения в результирующий код.

Искусственный минимальный пример выглядит следующим образом:

Тип:

List<? extends List<? extends Future<?>>> list = new ArrayList<>();
list.stream().map(l -> l.stream().map(f -> f.isD

с курсором, расположенным после заглавной буквы D из f.isD.Теперь IntelliJ предлагает мне заполнить f.isD до f.isDone().Когда я принимаю это и нажимаю return, генерируется следующее:

list.stream().map(l -> l.stream().map(f -> ((Future) f).isDone()));

Почему IntelliJ приводит f к Future?Это избыточно, что немедленно обнаруживается IntelliJ, который теперь жалуется (то есть предупреждает) о лишнем приведении.

Я искал в Интернете некоторые настройки, чтобы отключить это или исправить это автозаполнение, но не смог найтирешение.Пожалуйста, помогите, это сводит меня с ума!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...