Может кто-нибудь объяснить поведение alt-enter в intellij при попытке импортировать неразрешенный символ? - PullRequest
2 голосов
/ 19 апреля 2019

Я сейчас нахожусь в процессе переноса довольно большого Java-проекта на Scala, поэтому неудивительно, что я попадаю на множество неразрешенных символов.Я использую intellij, и у него есть полезный инструмент, который поможет вам найти импорт, вы нажимаете на неразрешенный символ и затем нажимаете alt-enter.Это здорово, но по моему опыту, это крайне ненадежно в том, как он работает.

Иногда это выглядит так, и вы можете просто нажать Enter (может быть, после некоторого сбоя) и импортировать то, что вы хотите:

Sometimes it looks like this

Но в других случаях это выглядит так, и вам нужно перейти к опции класса импорта, прежде чем вы увидите меню из предыдущего рисунка:

or this

И когда вы получаете эту версию, в зависимости от того, что вы делаете, опции и порядок могут сильно различаться.Я просто хотел бы, чтобы у меня было последовательное понимание того, почему среда IDE иногда выполняет одно, а иногда - другое ... любое понимание поведения или настроек, которые я мог бы изменить, чтобы заставить intellij работать понятным образом?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2019

Второй экран показывает стандартное всплывающее окно с доступными Намеренные действия .Он пересчитывается каждый раз, когда вы вызываете Alt + Enter.

. Выбор на первом экране обеспечивается всплывающим окном Автоимпорт , вы можете отключить его в File | Settings | Editor | General | Auto Import | Java | Show import popup for classes (это действительно должно бытьв разделе Scala, хотя).Он пытается найти применимые классы для неразрешенных ссылок в фоновом режиме и явно спрашивает вас, хотите ли вы импортировать что-то.

enter image description here

Это гораздо более заметно и часто более удобно.Например, он позволяет вам вставить фрагмент кода и добавить все соответствующие операции импорта, не перемещая каретку вообще.Это всплывающее окно можно отменить, но оно должно появиться снова после любого нажатия клавиши.

0 голосов
/ 19 апреля 2019

Я не знаю, что вам сказать, за исключением того, что иногда IntelliJ понимает, что вы хотите импортировать данный класс, а иногда предлагает создать указанный объект.

В этом случае, без какого-либо контекста,Я бы предложил вам либо создать объект / класс ListBuffer (потому что, кто сказал, что вы хотите импортировать один, на данный момент?), Либо импортировать один (какой именно IntelliJ предлагает на экране n °1) или значение / переменную, которую еще нужно где-то определить, или метод без параметров (разновидность метода получения с именем ListBuffer, результат которого будет храниться в test).

Если выпостоянно хотите, чтобы IntelliJ импортировал что-то, возможно, попробуйте указать тип объекта следующим образом:

val test: ListBuffer = ListBuffer()

Надеюсь, это поможет.

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