Как правильно сделать дженерик? Java
У меня есть абстрактный класс BaseCommand, который имеет в себе абстрактный метод execute. У меня есть два типа команд: SlashCommand & Command. (Они тоже абстрактные и наследуются от BaseCommand), они оба должны реализовать метод execute, но у них разные эвенты. SlashCommand -> SlashCommandInteractionEvent, Command -> CommandEvent. Так вот, в чем заключается вопрос, как мне сделать, чтобы execute мог ожидать два типа эвента? Это возможно сделать через дженерики?
Я просто не хочу писать два раза метод, но с разными эвентами, как на коде ниже
public abstract class BaseCommand
{
protected abstract void execute(SlashCommandInteractionEvent event);
protected abstract void execute(CommandEvent event); // Hет эвента, пока что
// Хочу что-то типо такого, думаю, вы поняли
protected abstract <T> void execute(T event);
}
Ответы (1 шт):
Автор решения: Дмитрий Алексеенко
→ Ссылка
public abstract class BaseCommand<T extends BaseCommand>
{
protected abstract void execute(T event);
}
Думаю, что то типа такого должно быть.