2011-02-01 1 views
2

Или это можно сделать только для методов/полей/констант enum?В Java можно (статически) импортировать конструкторы или локальные переменные?

+1

использовать его, когда вам требуется частый доступ к статическим членам из одного или двух классов. Если вы злоупотребляете функцией статического импорта, это может сделать вашу программу нечитаемой и неподъемной. См. Эффективное Java-элемент 17: Постоянный интерфейс Antipattern, статический импорт заставляет объявлять локальные копии констант! – Narayan

ответ

1

Конструкторы в Java нельзя вызвать напрямую (только через new), поэтому вы не можете импортировать их отдельно от содержащего класса. Поскольку использование конструктора единственное, чтобы создать новый экземпляр класса, вам нужно импортировать весь класс в любом случае, и это подразумевает конструктор. Не говоря уже о том, что в любом случае это метод экземпляра, и вы можете импортировать только методы и переменные static.

Локальные переменные не существуют вне их сферы, то есть они не привязаны к классу, только к кодовому блоку внутри метода [Update] (или статический/экземпляр инициализатор) [/ Update]. Итак, как бы вы их импортировали?

+0

Вот что я подумал. –

+0

Но имейте в виду, что локальные переменные также могут отображаться внутри инициализаторов экземпляра/enums класса/enums. –

+0

@ Джон, хороший момент, хотя это ничего не меняет в отношении импровизации. Тем не менее я продлил свой ответ. –

2

Нет, вы не можете этого сделать.

Для того, чтобы импортировать метод или переменную, он должен быть общедоступным и статическим. Конструкторы и локальные переменные не могут быть статическими.

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