Я понимаю, что могу импортировать пакеты и получить доступ к множеству уже закодированных классов, которые я могу использовать для создания своих программ. Но если они предоставляют вам доступ ко многим различным функциям, почему бы просто не импортировать их все? Я понимаю, что есть тысячи импорта, и я знаю, что это необычно (я не знаю никого, кто это делает, но, возможно, я ошибаюсь), но почему люди просто не импортируют их все? Это сделает программу слишком медленной? Или просто быть неэффективным? Мне просто любопытно. Спасибо.

2
SuperHanz98 5 Сен 2016 в 12:12

3 ответа

Лучший ответ

Импорт всех пакетов:

  1. замедлить работу вашей программы, поскольку она поддерживает все классы, функции и т. д., поступающие из каждого пакета, живыми (= легко доступными)
  2. создавать конфликты между пакетами, которые используют одно и то же пространство имен (то есть одно и то же имя функции и т. д.), или, по крайней мере, сделать последний загруженный пригодным для использования и сделать предыдущие замаскированным
  3. занимает много времени каждый раз, когда вы перезапускаете программу
  4. использовать много памяти
  5. быть уязвимым к сбою по вышеуказанным причинам

Где этот список можно расширить.

2
Ömer An 5 Сен 2016 в 09:21

Это делает ваш код нечитаемым, потому что человек, который читает, не видит ваших намерений. ВСЕГДА ПОМНИТЕ: «код пишется один раз, может быть, еще два раза, но кто-то читает сотни раз. Пример:

В Android SDK есть классы с одинаковыми именами, но из разных пакетов. Я думаю, это был менеджер местоположения GPS или что-то в этом роде. Как бы то ни было ... у другого программиста могут быть трудности, потому что ему нужно подумать или вручную проверить, какой импорт вы используете.

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

1
user6118404user6118404 5 Сен 2016 в 09:22

Помимо скорости, я могу вспомнить еще несколько причин:

  1. Просмотр списка импорта может быстро показать, что кто-то читает файл, что используется. Если вы импортируете все, вы потеряете эту способность
  2. Произойдут конфликты имен, что приведет к ошибкам. См. Пример в этом вопросе.
  3. Современные IDE позволяют легко импортировать пакеты по запросу, поэтому нет необходимости импортировать все заранее.
5
Community 23 Май 2017 в 12:22