Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Статический Импорт

Чтобы получить доступ к статическим элементам, необходимо квалифицировать ссылки с классом, из которого они происходили. Например, нужно сказать:
double r = Math.cos(Math.PI * theta);
Чтобы обойти это, люди иногда помещаемые статические элементы в интерфейс и наследоваться от того интерфейса. Это - плохая идея. Фактически, это - такая плохая идея, что есть имя для этого: Постоянный Интерфейсный Антиобразец (см. Эффективный Элемент Java 17). Проблема состоит в том, что использование класса статических элементов другого класса является простой деталью реализации. Когда класс реализует интерфейс, это становится частью общедоступного API класса. Детали реализации не должны просочиться в общедоступные API.

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

import static java.lang.Math.PI;
или в массе:
import static java.lang.Math.*;
Как только статические элементы были импортированы, они могут использоваться без квалификации:
double r = cos(PI * theta);
Статическое объявление импорта походит на нормальное объявление импорта. Куда нормальное объявление импорта импортирует классы из пакетов, позволяя им использоваться без квалификации пакета, статическое объявление импорта импортирует статические элементы из классов, позволяя им использоваться без квалификации класса.

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


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами