Como implementar o enum com genéricos?

Eu tenho uma interface genérica como esta:

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

Essa interface tem instâncias limitadas, portanto, seria melhor implementá-las como valores de enumeração. O problema é que essas instâncias têm diferentes tipos de valores, então tentei a seguinte abordagem, mas ela não compila:

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

Alguma ideia sobre isso?

questionAnswers(3)

yourAnswerToTheQuestion