Как реализовать enum с помощью дженериков?

У меня есть общий интерфейс, как это:

interface A<T> {
    T getValue();
}

Этот интерфейс имеет ограниченные экземпляры, поэтому было бы лучше реализовать их как перечислимые значения. Проблема в том, что эти экземпляры имеют разные типы значений, поэтому я попробовал следующий подход, но он не компилируется:

public enum B implements A {
    A1<String> {
        @Override
        public String getValue() {
            return "value";
        }
    },
    A2<Integer> {
        @Override
        public Integer getValue() {
            return 0;
        }
    };
}

Есть идеи по этому поводу?

Ответы на вопрос(3)

Ваш ответ на вопрос