Как важный это должно преобразовать весь мой импорт в static import
? Почему люди все еще отказываются использовать static import
?
Как говорится в документации, используйте его экономно. Посмотрите там обоснования.
Использование статического импорта
предпочтительнее, если вы используете IDE.
Я использую статический импорт
только в наиболее очевидных ситуациях. Помните: сжатый код - это не всегда то же самое, что читаемый код.
Я бы сказал, никогда не используйте статические импорты с подстановочными знаками.
Без использования подстановочных знаков, по мере необходимости, я думаю, это уменьшает беспорядок.
Совсем не важно преобразовывать существующий рабочий код, на самом деле это просто ненужные затраты и риск.
Вы можете рассмотреть возможность его использования для нового кода, если сможете найти ему достойное применение. Я еще не нашел, но могу...
Я использую статический импорт при работе с assert в JUnit (import static org.junit.Assert.*;
), а также когда у меня есть enum
, который очень привязан к рассматриваемому классу.
Например:
Файл перечисления:
public enum MyEnum {
A, B, C;
}
Файл класса:
import static MyEnum.*;
public class MyClass {
MyEnum e;
public setE(MyEnum newE) {
if ( newE == A ) {
// some verification
}
e = newE;
}
}
Обратите внимание, как я смог сделать newE == A
, вместо newE == MyEnum.A
. Пригодится, если вы делаете много подобных действий по всему коду.
Это особый случай, но также идеальный вариант использования (и я использую его во всех своих тестах):
import static junit.framework.Assert.*;
Здесь я обнаружил, что это делает мои тесты более удобочитаемыми, и это очевидно, откуда assertXXX
родом из. Но это исключение. В других ситуациях я обнаруживаю, что статический импорт делает вещи более неясными, трудными для чтения, и я на самом деле их не использую.