1) Если Undo
является специализированным Command
, имеет Undo
extension Command
: -
interface Undo<I> extends Command {...}
2) Иначе, вы можете создать третийинтерфейс: -
interface ReversibleCommand extends Command, Undo {...}
и переключение на if (command instanceof ReversibleCommand) {...}