Предотвращение стирания типа Java

Есть ли способ избежать стирания типа и получить доступ к параметру типа?

public class Foo<T extends Enum<?> & Bar> {
    public Foo() {
        // access the template class here?
        // i.e. :
        baz(T.class); // obviously doesn't work
    }

    private void baz(Class<T> qux) { 
        // do stuff like
        T[] constants = qux.getEnumConstants();
        ...
    } 
}

Мне нужно знать о T и что-то с этим делать. Возможно ли это, и если да, то как это можно сделать без передачи класса в конструкторе или где-либо еще, кроме параметра?

РЕДАКТИРОВАТЬ: Основная цель этого вопроса - найти если есть какой-нибудь практический способ обойти стирание типа.

9
задан Chris Cashwell 21 December 2011 в 13:21
поделиться