При использовании так:
import static com.showboy.Myclass;
public class Anotherclass{}
какая разница между import static com.showboy.Myclass
а import com.showboy.Myclass
?
При использовании так:
import static com.showboy.Myclass;
public class Anotherclass{}
какая разница между import static com.showboy.Myclass
а import com.showboy.Myclass
?
Смотрите документацию
Статическое объявление импорта аналогично обычному объявлению импорта. Если обычное объявление импорта импортирует классы из пакетов, что позволяет использовать их без квалификации пакета, статическое объявление импорта импортирует статические члены из классов, что позволяет использовать их без квалификации класса.
Итак, когда вы должны использовать статический импорт? Очень экономно! Используйте его только тогда, когда у вас возникнет искушение объявить локальные копии констант или злоупотребить наследованием (Антипаттерн Constant Interface). Другими словами, используйте его, когда вам требуется частый доступ к статическим членам одного или двух классов. Если вы чрезмерно используете функцию статического импорта, она может сделать вашу программу нечитаемой и не поддерживаемой, загрязняя ее пространство имен всеми статическими элементами, которые вы импортируете. Читатели вашего кода (включая вас через несколько месяцев после того, как вы его написали) не будут знать, из какого класса происходит статический член. Импорт всех статических членов из класса может быть особенно вредным для читабельности; если вам нужен только один или два участника, импортируйте их по отдельности. При правильном использовании статический импорт может сделать вашу программу более читабельной,
include
в Ruby!Нет никакой разницы между этими двумя типами импорта. Однако вы можете использовать статический импорт, чтобы разрешить неквалифицированный доступ к статическим членам других классов. Где я раньше делал это:
Я могу сделать это:
Вы можете увидеть больше в документации .
источник
Статический импорт используется для импорта статических полей / метода класса вместо:
Ты можешь написать :
Это полезно, если вы часто используете константу из другого класса в своем коде и если статический импорт не является неоднозначным.
Кстати, в вашем примере "import static org.example.Myclass;" не сработает: импорт для класса, импорт статический для статических членов класса.
источник
Основная идея статического импорта заключается в том, что всякий раз, когда вы используете статический класс, статическую переменную или перечисление, вы можете импортировать их и избавить себя от некоторой типизации.
Я поясню свою точку зрения на примере.
Тот же код со статическим импортом:
Примечание : статический импорт может затруднить чтение кода.
источник
import static java.lang.Math
без звездочки?Первый должен генерировать ошибку компилятора, так как статический импорт работает только для импорта полей или типов элементов. (при условии, что MyClass не является внутренним классом или членом showboy)
Я думаю ты имел ввиду
который делает все статические поля и члены из MyClass доступными в фактическом модуле компиляции без необходимости их квалифицировать ... как объяснено выше
источник
import
Позволяет Java программисту классов доступа пакета без пакета квалификации.static import
Функция позволяет получить доступ к членам статики класса без квалификации класса.import
Предоставляет доступ к классам и интерфейс , тогда какstatic import
обеспечивает доступ к статическим членам класса.Пример :
С импортом
Со статическим импортом
Смотрите также: Что такое статический импорт в Java 5
источник
Скажем, у вас есть статические поля и методы внутри класса, вызываемого
MyClass
внутри вызываемого пакета,myPackage
и вы хотите получить к ним доступ напрямую, печатаяmyStaticField
илиmyStaticMethod
не вводя каждый разMyClass.myStaticField
илиMyClass.myStaticMethod
.Примечание: вам нужно сделать
import myPackage.MyClass
илиmyPackage.*
для доступа к другим ресурсамисточник
static
Модификатор после того, какimport
для извлечения / с использованием статических полей класса. Одна область, в которой я использую,import static
- для извлечения констант из класса. Мы также можем применятьimport static
статические методы. Убедитесь, что напечатали,import static
потому чтоstatic import
это неправильно.Что находится
static import
в Java - JavaRevisited - очень хороший ресурс, чтобы узнать больше оimport static
.источник