Как правильно сделать дженерик? 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);

}

Думаю, что то типа такого должно быть.

→ Ссылка