Код: Выделить всё
package a;
import b.B;
public sealed interface A permits B {
}
Код: Выделить всё
package b;
import a.A;
public record B() implements A {
}
и попытаюсь скомпилировать его с помощью Maven, у меня получится
Код: Выделить всё
[ERROR] .../src/main/java/a/A.java:[5,35] class a.A in unnamed module cannot extend a sealed class in a different package
Классы, указанные в разрешениях, должны располагаться рядом с суперклассом:
либо в том же модуле (если суперкласс находится в именованном модуле), либо
в том же пакете (если суперкласс находится в безымянном модуле). ).
Однако не должен ли Maven по умолчанию использовать путь к классам при компиляции? Можно ли вообще избежать этого ограничения?
Если нет, не создает ли это прецедент, когда функция в пути к модулю является более гибкой, чем в пути к классу, а это, в свою очередь, - в то время как путь к классам все еще поддерживается, он не является таким первоклассным, как раньше, по сравнению с путем к модулю?
Подробнее здесь: https://stackoverflow.com/questions/684 ... t-packages
Мобильная версия