Импорт пакетов или конкретных типов из них

Рейтинг: 0Ответов: 2Опубликовано: 03.02.2015

Доброго времени суток!

У меня такой вопрос по java. Обычно просматривая чужой код, я вижу, что импортируются не все пакеты целиком, а только конкретные типы из них. Почему бы не импортировать весь пакет, чтобы не писать кучу import по одной на каждый нужный тип? Чем это хуже?

Ответы

▲ 6Принят

Основная причина - в избежании конфликтов имен классов.

Допустим, у вас есть пакет a.b.c с классами A, B и C. И пакет x.y.z с классами M, N и... C.

Допустим, мы импортируем классы B и N. Мы можем импортировать их правильно:

import a.b.c.B;
import x.y.z.N;

а можем полениться и написать:

import a.b.c.*;
import x.y.z.*;

В первом случае все будет хорошо. А во втором возникнет конфликт имен между классами a.b.c.C и x.y.z.C. Поскольку существует много достаточно типовых имен классов (особенно интерфейсов, типа каких-нибудь Event, Listener, Command и т.п.), стоит импортировать их явно, дабы избежать конфликта.

▲ 0
  1. Памяти то больше съест
  2. Современные иде автоматически сами пишут импорт (idea по крайней мере точно). И какая разница для иде писать по импорту для каждого класса, или импортировать целый пакет? (основная причина)