Рассмотрим следующий сценарий:
Допустим, у меня есть класс A в папке "src" моего проекта.
class A {
void foo() {
B b = new B();
}
}
Класс B определен в другом фляге, который включен какзависимость в build.gradle
class B extends C {
}
Теперь класс C определен в другом jar-файле, который будет предоставлен во время выполнения, а не во время компиляции.Gradle может скомпилировать класс A без ошибок.
Но, когда я импортирую класс c в класс A, он дает «класс не найден».
import other.C; // this line gives error
class A {
void foo() {
B b = new B();
}
}
Является ли это желаемым поведениемJava компилятор игнорирует класс C, если он не импортирован напрямую?
Кроме того, что произошло, если использовать функцию в классе A с использованием объекта B, который находится в классе C, но не переопределен в классе B.