Ограниченный подстановочный знак Java

Мне нужно определить общий класс, а параметр типа должен быть перечислением. Я думаю, это должно выглядеть примерно так

public class <T> MyClass<T extends Enum<T>> {

}

Но я не могу понять точный синтаксис. Я должен упомянуть, что мне нужен способ сослаться на тип (внутри MyClass), с которым он создан.

Спасибо!


person Dónal    schedule 20.11.2009    source источник


Ответы (1)


Хотя утвержденный ответ выглядит синтаксически правильным, каков сценарий такого объявления? Вы пытаетесь написать класс, который может работать с любым enum определенным типом, например java.util.EnumSet или java.util.EnumMap? Это необычная схема, поэтому убедитесь, что она вам действительно нужна, чтобы соответствовать вашим требованиям.

person seh    schedule 20.11.2009
comment
На самом деле это вариант использования, который у вас часто есть. Например, вы также можете создать TreeSet типа ‹T extends Comparable‹T››, что означает набор вещей, которые вы можете сравнивать друг с другом. - person Jorn; 21.11.2009
comment
Да, это почти Любопытно Повторяющийся Шаблон Шаблона, без деривации. Я спрашивал конкретно об использовании Enum здесь. Я решил, что вопрос должен быть сосредоточен на Enum меньше, чем на общей проблеме написания такого общего объявления. - person seh; 21.11.2009