タイプの消去を回避し、タイプパラメータにアクセスできる方法はありますか?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
について知っている必要があります。それが可能かどうか、そうであればをなしでコンストラクタ内のクラスに渡すか、パラメータ以外の場所でどのように行うことができますか?
EDIT:この質問の主な目的は、型消去周り任意の実用的な方法があるかどうかを確認することです。
+1これは、 'Class'オブジェクトを継承するためにサブクラス化する方が好きなら、これは別のリフレクションベースの方法です。 –