J1: избегайте длинных списков импорта с помощью подстановочных знаков
Если вы используете два или более классов из пакета, импортируйте весь пакет с помощью
импортный пакет. *;
Длинные списки импорта устрашают читателя. Мы не хотим загромождать вершины наших модулей 80 строками импорта. Скорее, мы хотим, чтобы импорт был кратким заявлением о том, с какими пакетами мы сотрудничаем.
Конкретный импорт - это жесткие зависимости, а импорт с подстановочными знаками - нет. Если вы специально импортируете класс, он должен существовать. Но если вы импортируете пакет с подстановочным знаком, никаких конкретных классов не должно быть. Оператор импорта просто добавляет пакет в путь поиска при поиске имен. Таким образом, такой импорт не создает настоящей зависимости, и поэтому они служат для того, чтобы наши модули были менее связанными.
Бывают случаи, когда может быть полезен длинный список конкретных импортов. Например, если вы имеете дело с устаревшим кодом и хотите узнать, для каких классов вам нужно создавать макеты и заглушки, вы можете пройтись по списку конкретных импортов, чтобы узнать истинные квалифицированные имена всех этих классов, а затем поставить соответствующие заглушки на место. Однако это использование для конкретного импорта очень редко. Кроме того, большинство современных IDE позволяют преобразовывать импорт с подстановочными знаками в список определенных импортов с помощью одной команды. Так что даже в устаревшем случае лучше импортировать подстановочные знаки.
Импорт подстановочных знаков может иногда вызывать конфликты имен и неоднозначность. Два класса с одинаковым именем, но в разных пакетах, необходимо будет специально импортировать или, по крайней мере, специально квалифицировать при использовании. Это может доставлять неудобства, но бывает достаточно редко, поэтому использование подстановочного импорта по-прежнему лучше, чем конкретный импорт.