Подтвердить что ты не робот

Слишком много импорта рассылает мой код

В моем проекте у меня есть пакет shapes, который имеет формы, которые я разработал для своей графической программы, например Rectangle, Circle. У меня также есть один или два пакета, которые имеют те же имена, что и классы java.awt.

Теперь, поскольку я не хочу переименовывать каждый класс в моей базе кода, чтобы показать мои исходные файлы, которые я имею в виду, когда я, скажем, объявляю новый Rectangle, мне нужно либо:

1- явно импортировать класс прямоугольника, т.е. импортировать фигуры. Прямоугольник

ИЛИ

2- импортировать только классы java.awt, которые мне нужны, а не импортировать java.awt. *, который автоматически включает в себя awt.Rectangle

Теперь проблема заключается в том, что в обоих случаях результат импорта много, в настоящее время у меня есть в среднем 15-25 импортных файлов в каждом исходном файле, что серьезно меняет мой код и запутывает,

Слишком много импорта в вашем коде плохое? Есть ли способ обойти это?

4b9b3361

Ответ 1

Да, слишком много импорта - это плохо, потому что он загромождает ваш код и делает ваш импорт менее читаемым.

Избегайте длинных списков импорта с помощью подстановочных знаков.

Кевлин Хенни рассказывает об этом конкретном вопросе о переполнении стека 27:54 в своей презентации Чистые кодеры Hate Что происходит с вашим кодом, когда вы используете эти корпоративные программные трюки от НДЦ Лондон 16-20 января 2017 г.

Ответ 2

  • Хорошая практика для импорта класса за классом вместо импорта целых пакетов

  • Любая хорошая среда IDE, такая как Eclipse, приведет к смене импорта в одной строке, и вы сможете расширить их по мере необходимости, чтобы они не загромождали ваш вид

  • В случае конфликтов вы всегда можете ссылаться на полностью квалифицированные классы, но если один из двух классов находится под вашим контролем, вы можете рассмотреть его переименование. (с Eclipse, щелкните правой кнопкой мыши на классе, выберите Refactor -> Rename, он позаботится о том, чтобы обновить все его ссылки).

  • Если ваш класс импортирует из AWT и из вашего пакета форм, это нормально. Это нормально для импорта из нескольких классов; однако, если вы обнаружите, что импортируете из действительно много разрозненных источников, это может быть признаком того, что ваш класс делает слишком много, и его нужно разделить.

Ответ 3

Другой альтернативой является набирать полное имя класса так, как вам нужно. В моем примере есть 2 Element объект, созданный мной org.opensearch.Element, а другой org.w3c.dom.Element.

Чтобы разрешить конфликт имен, а также минимизировать "помехи" импорта, я сделал это (в классе org.opensearch.Element):

public org.w3c.dom.Element toElement(org.w3c.dom.Document doc) { /* .... */ }

Как вы можете видеть, тип возвращаемого Element является полностью типизированным (т.е. я указал полное имя класса класса Element).

Проблема решена!: -)

Ответ 4

В мире Java нормальный объем импорта - вам действительно нужно импортировать все. Но если вы используете IDE, например Eclipse, он импортирует для вас.