Почему IntelliJ предпочитает импортировать пакет java.awt. * Вместо отдельных классов? [Дубликат]

У меня есть другая перспектива ответить на это.

При работе на разных уровнях, например, в приложении MVC, контроллеру нужны службы для вызова бизнес-операций. В таких сценариях контейнер инжекции зависимостей может использоваться для инициализации служб, чтобы исключить исключение NullReferenceException. Это означает, что вам не нужно беспокоиться о проверке нулевого значения и просто вызвать службы с контроллера, как будто они всегда будут доступны (и инициализированы) как одиночный или прототип.

public class MyController
{
    private ServiceA serviceA;
    private ServiceB serviceB;

    public MyController(ServiceA serviceA, ServiceB serviceB)
    {
        this.serviceA = serviceA;
        this.serviceB = serviceB;
    }

    public void MyMethod()
    {
        // We don't need to check null because the dependency injection container 
        // injects it, provided you took care of bootstrapping it.
        var someObject = serviceA.DoThis();
    }
}
429
задан digiarnie 28 July 2010 в 00:36
поделиться

8 ответов

Очевидно, почему вы хотите отключить это: Чтобы заставить IntelliJ включать каждый импорт отдельно. Это облегчает для людей, чтобы выяснить, где именно используются классы.

Нажмите на значок «Настройки гаечного ключа» на панели инструментов, откройте «Импорт» в «Стиль кода» и проверьте выбор «Использовать один класс импорта». Вы также можете полностью удалить записи в разделе «Пакеты для использования импорта с *» или указать пороговое значение, которое использует только «*», если отдельные классы из пакета превышают этот порог.

Обновление: в IDEA 13 «Использовать импорт одного класса» не предотвращает импорт подстановочных знаков. Решение состоит в том, чтобы перейти к Preferences (⌘ +, на macOS / Ctrl + Alt + S в Windows) > Editor > Code Style > Java > Imports tab установить Class count to use import with '*' и Names count to use static import with '*' на более высокое значение. Любое значение более 99, кажется, работает нормально.

560
ответ дан Clijsters 26 August 2018 в 18:18
поделиться
  • 1
    Начиная с IntelliJ 13, «Использовать импорт одного класса» не препятствует IntelliJ сокращать импорт с помощью *. Фактически, это, кажется, не имеет никакого эффекта вообще. IntelliJ будет делать то, что вы хотите, если вы установите оба параметра «Кол-во классов», чтобы использовать импорт с помощью * & quot; и «Имена рассчитывают использовать статический импорт с помощью *». до 99, что соответствует Eclipse (или любому другому большому значению, если вы предпочитаете). – James Wald 16 January 2014 в 06:11
  • 2
    В случае, если это сэкономит кому-то еще путаницу: в моем энтузиазме к никогда не рушится импорт, я помещаю неоправданно длинную строку из 9 в поле «count count to use ...», и это заставило IntelliJ 12 молча игнорировать значение. «9999» отлично работает. – PotataChipz 20 March 2014 в 18:53
  • 3
    Не существует ли способа сказать Intellij 15 никогда не использовать импорт подстановочных знаков? Я имею в виду без указания класса count ??! – Stephen Hartley 8 February 2016 в 16:04
  • 4
    Похоже, что три девятки должны быть достаточно. Если вам нужно более тысячи импорта, я бы сказал, что ваш класс должен быть реорганизован. – duffymo 5 April 2016 в 20:09
  • 5
    Не могу поверить, что программы запрограммировали программу для программистов так, как это запрограммировано. Этот запутанный диалог все еще не исправлен в 2016 году.3, есть ли ошибка для него или где-то мы можем голосовать? – Glenn Bech 26 January 2017 в 12:38

Если вы не хотите изменять настройки, вы можете оптимизировать импорт, нажав Ctrl + Option + o на Mac или Ctrl + Alt + o в Windows / Linux, и это заменит все импорты с помощью одного импорта в текущем файле.

0
ответ дан Alex Green 26 August 2018 в 18:18
поделиться

Если вы не работаете выше, вы можете проверить, есть ли у вас какие-либо пакеты в разделе «Предпочтение»> «Редактор»> «Стиль кода»> «Java»> «Импорт»> «Пакеты для импорта» с «*»

5
ответ дан Heungwoo 26 August 2018 в 18:18
поделиться

IntelliJ IDEA 2018.1.4 (Ultimate Edition), построенный 16 мая 2018 года

8
ответ дан Kanke 26 August 2018 в 18:18
поделиться

Как dum-dum, я не мог понять, почему ни один из этих ответов не работал на мои файлы Kotlin для java.util.*, поэтому, если это происходит с вами, тогда:

Preferences
> Editor
> Code Style
> **Kotlin**
> Imports
> Packages to Use Import with '*'
-> Remove 'java.util.*'
0
ответ дан Matt Klein 26 August 2018 в 18:18
поделиться
  1. Файл \ Настройки ... (Ctrl + Alt + S)
  2. Настройки проекта> Редактор> Стиль кода> Java> Вкладка импорта
  3. Установите кол-во классов для использования import with '*' to 999
  4. Установить имена, чтобы использовать статический импорт с '*' до 999

После этого ваша конфигурация должна выглядеть так: enter image description here [/g0]

(On IntelliJ IDEA 13.x, 14.x, 15.x, 2016.x, 2017.x)

252
ответ дан Michael 26 August 2018 в 18:18
поделиться

Ярлык делает это на Mac: нажмите команду + Shift + A (Действие) и введите «кол-во классов для использования импорта с *». Нажмите «Ввод». Введите большее число, например 999

0
ответ дан user2789973 26 August 2018 в 18:18
поделиться

Решение выше не работало для меня. Я должен был установить значение класса для использования импорта с '*' 'с высоким значением, например. 999.

26
ответ дан zatziky 26 August 2018 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: