2016-07-21 2 views
1

У меня слишком много общих операторов импорта во многих программах Java в общем пакете. Как отменить импортные заявления и сделать код маленьким и аккуратным. Пример:Рефакторинг Импорт операторов в Java

JavaProgram1.java:

package commonPackage; 
import javaPackage1; 
import javaPackage2; 
... 
import javaPackageN; 
.... 
[Code] 

JavaProgram2.java:

package commonPackage; 
import javaPackage1; 
import javaPackage2; 
... 
import javaPackageM; 
.... 
[Code] 

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

+0

почему вы хотите импортировать все пакеты все классы? почему не просто нужны? – sidgate

+1

Если вам нужно импортировать много пакетов, вероятность того, что ваши классы раздуты в любом случае. Таким образом, я сначала проверил, можно ли разделить ваш код на более разумные фрагменты (например, попытайтесь придерживаться принципа единой ответственности). Кроме того, только импортируйте классы, которые вам действительно нужны. И, наконец, большинство IDE сбрасывают блок импорта в любом случае, поэтому не имеет значения, существует ли только 1 оператор или 1000. – Thomas

+1

Используйте ctrl + shift + o («Organize Imports») в eclipse. – f1sh

ответ

1

Единственный способ сделать это, если классы, которые вы импортируете, находятся в одном пакете.

Допустим, у вас есть

import org.foo.package1.X; 
import org.foo.package1.Y; 
import org.foo.package1.Z; 

Вы можете использовать * импортировать все классы в org.foo.package1 как:

import org.foo.package1.*; 

Но в этом случае вы будете импортировать все классы в org.foo.package1, который может немного уменьшить читаемость

1

Первое примечание: не беспокойтесь об этом слишком много. Это происходит часто, и ваша среда IDE удалит его с вашего дисплея, чтобы вы не тратили половину экрана. Сказав это, вы часто можете легко сделать объем импорта мелких

Я предполагаю, что вы должны работать на вашем кодовом дереве

  • Имейте в виду, чтобы не сделать класс слишком большой. Разделите цели (проблемы) на разные классы и используйте эти извлеченные классы с их необходимым импортом. Этот вновь созданный класс может быть расширен и/или использоваться, а зависимые классы этого нового класса не понадобятся в классе, из которого он был извлечен.
  • Если классу A нужен класс B, а кроме класса A нужен класс B, тогда сохраните класс B в том же пакете, и вам не нужно писать (генерировать) импорт для него.
  • Если для импорта вашего класса требуется целый пакет, вы можете написать import this.important.package.* и все будет импортировано. Ваша IDE, вероятно, оптимизирует ваш импорт и перепишет эту строку в несколько разных импортов, и вы вернетесь туда, откуда пришли.

Удачи :)

1

Серьезно, вы не делаете это вручную.

Любая достойная IDE предлагает средства для этого для вас (например, в eclipse вы просто набираете ctrl-o для организации импорта). Поэтому вы просто привыкаете время от времени ударять ctrl-o. Или, если это вариант, вы настраиваете eclipse для организации импорта при каждом сохранении. Такие политики могут быть расширены и для запуска встроенного форматирования.

Идея в основном: вы определенно хотите использовать какую-то технику здесь. «Организация импорта» - это задача, которую вы, как человек, не хотите тратить ни на секунду.

Еще один важный аспект: убедитесь, что все люди, которые могут изменить исходный код, согласны с этим инструментом - вы просто хотите избежать истории изменений, которая содержит множество дельт, только потому, что люди используют разные инструменты Вот.

Вы можете даже пойти на один шаг дальше, и использовать среду сборки, чтобы сделать это для вас (так, что это происходит на самом деле автоматически, в фоновом режиме), как с https://github.com/ajoberstar/gradle-imports

Смежные вопросы