Как ты определяешь generic класс, и чем он отличается от обычного класса? Плюс, как ты можешь применять constraints к type parameters generic класса? — ДейлиПреп