2015-02-12 5 views
2

Какая реальная (т. Е. Практическая) разница между нормальным статусом импорта и статическим импортом?Разница между импортом и статическим импортом?

import static java.lang.System.*;  
class StaticImportExample{ 
    public static void main(String args[]){ 

    out.println("Hello"); 
    out.println("Java"); 

} 
} 

import java.lang.System.*;  
class StaticImportExample{ 
    public static void main(String args[]){ 

    System.out.println("Hello"); 
    System.out.println("Java"); 

} 
} 
+0

[см следующий URL вы получите ответ] [1] [1]: http://stackoverflow.com/questions/162187/what-does-the-static-modifier -after-import-mean – user247813

+0

Возможный дубликат [Что означает «статический» модификатор после «импорта»?] (https://stackoverflow.com/questions/162187/what-does-the-static-modifier-after- импорт-средний) – xyz

ответ

2

С java 5 вперед был введен статический импорт. Практически «import static» используется для уменьшения количества нажатий клавиш, а это означает, что вам не нужно писать имя класса для статического члена, который вы хотите использовать.

Как и в вашем примере, с import static java.lang.System.* вам нужно только написать out.println("Hello"); тогда как обычно приходится писать System.out.println("Hello"); т.е. мы должны написать имя класса (System) каждый раз, когда нам нужно вызвать статический член (из) его.

0

В дополнение к ответу @ venkatesh, стоит указать документацию javadoc о , когда следует использовать статический импорт?

Итак, когда вы должны использовать статический импорт? Очень экономно! Используйте его только в том случае, если у вас возникнет соблазн объявить локальные копии констант или наследование наследования (Constant Interface Antipattern). В других словах используйте его, если вам требуется частый доступ к статическим членам из одного или двух классов. Если вы злоупотребляете функцией статического импорта, он может сделать вашу программу нечитаемой и недостижимой, загрязняя ее пространство имен со всеми статическими членами, которые вы импортируете. Читатели вашего кода (включая вас, через несколько месяцев после того, как вы его написали) не будут знать, из какого класса возникает статический член. Импорт всех статических элементов из класса может быть особенно вреден для удобочитаемости; если вам нужен только один или два члена, импортируйте их отдельно. При использовании статического импорта статический импорт может сделать вашу программу более удобочитаемой, удалив шаблон повторения имен классов.

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