Как ведут себя конфликтующие импорты?

Классы, входящие в текущий используемый пакет можно использовать без импорта. При импорте class, идентичного по имени с соседним по пакету, он будет перекрыт. В таком случае будет использоваться импортированный class, при этом никакой ошибки компилятор не выдаст.

Если в одном классе будет присутствовать некоторое количество классов с идентичными названиями при компиляции возникнет ошибка.

Если импортировать класс не один раз, раз то приложение будет скомпилировано, но компилятор выдаст предупреждение о том, что есть неиспользуемый в приложении импорт.

Для static-импортов применяются те же инструкции. Простые импорты не должны конфликтовать со static.

Если требуется использовать некоторое количество классов или констант, с совпадающим названием, то обращаться к ним придётся по полным названиям. Импорты использовать не получится.

import ru.ievetrov.A;
import static ru.ievetrov.Letters.A;
class Test {
  void test() {
    // Никаких ошибок!
    A letterAVariable = new A();
    var enumElement = A;
  }
}
Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *