Насколько важно преобразовать весь мой импорт в static import
? Почему люди все еще неохотно используют static import
?
Должен ли я использовать статический импорт?
Ответ 1
Как говорят документы, используйте экономно. Посмотрите там, где есть обоснования.
Ответ 2
Это особый случай, но также идеальный вариант использования (и я использую его во всех моих тестах):
import static junit.framework.Assert.*;
Здесь я нахожу, что это делает мои тесты более читабельными, и это очевидно, откуда приходит assertXXX
. Но это исключение. В других ситуациях я считаю, что статический импорт делает вещи более неясными, трудными для чтения, и я их действительно не использую.
Ответ 3
Я использую статический импорт при работе с JUnit assert (import static org.junit.Assert.*;
), а также когда у меня есть enum
, который очень привязан к рассматриваемому классу.
Например:
Файл 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
. Пригодится, если вы делаете много всего на протяжении всего кода.
Ответ 4
Я использую static import
только в наиболее очевидных ситуациях. Помните: сжатый код не всегда совпадает с читаемым кодом.
Ответ 5
Я бы сказал, никогда не используйте статические импортные шаблоны.
Без подстановочных знаков, по мере необходимости, я думаю, что это уменьшает беспорядок.
Ответ 6
Использование static import
предпочтительнее, если вы используете среду IDE.
Ответ 7
Совсем не важно преобразовать существующий рабочий код, на самом деле это просто лишняя стоимость и риск.
Вы можете использовать его для нового кода, если вы можете найти для него неотразимое использование. Я еще не знаю, но могу...