Как ведут себя конфликтующие импорты?
Классы, входящие в текущий используемый пакет можно использовать без импорта. При импорте 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;
}
}
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →