Вообще говоря, возможно ли ограничить классы, которые могут реализовывать интерфейс?
Более конкретно, может ли универсальный interface Foo
ограничивает свои реализации потомками T
:
interface Foo<T> {}
class Baz extends Bar implements Foo<Bar> {} // desirable
class Baz extends Bar implements Foo<Qux> {} // undesirable
Контекст таков, что объекты Foo
должны быть преобразованы в Бар
объектов безопасным способом.
Исчерпав все другие источники информации, я уже сильно подозреваю, что это не Это возможно, но я был бы рад, если бы кто-нибудь смог доказать обратное!