Часто, когда я набираю код потока 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, который теперь жалуется (то есть предупреждает) о лишнем приведении.
Я искал в Интернете некоторые настройки, чтобы отключить это или исправить это автозаполнение, но не смог найтирешение.Пожалуйста, помогите, это сводит меня с ума!