Предположим, у нас есть абстрактный метод, который должен возвращать Class
:Как заставить пользователя отправить класс, который наследуется от базового класса?
abstract class MainClass{
abstract Class onCreateClass();
}
я реализовал класс как это:
class ChildClass extends MainClass{
@Override
Class onCreateClass() {
return AnotherClass.class;
}
}
class AnotherClass {
}
Это работает хорошо, но теперь я хочу объявить некоторые ограничения на AnotherClass
. Например, я хочу, чтобы заставить пользователя о MainClass
для реализации onCreateClass
таких, как он возвращает только классы, которые наследуют от BaseClass
:
abstract class MainClass{
abstract Class<BaseClass> onCreateClass();
}
Но это не компилирует это:
class ChildClass extends MainClass{
@Override
Class onCreateClass() {
return AnotherClass.class;
}
}
class AnotherClass extends BaseClass {
}
является класс ' MainClass' допустимый синтаксис для Java? –
@ VladBochenin У меня еще не было утреннего кофе. Ты прав. Исправлена! Благодаря! – GhostCat
Приятно видеть даже 27k + Пользователи могут ошибаться; P – Fildor