型パラメータつきクラスの中から指定された型パラメータを知る方法
型パラメータつきクラスHoe
public class Hoe<E> { private Class<E> type; public Hoe(E... e) { @SuppressWarnings("unchecked") Class<E> type = (Class<E>) e.getClass().getComponentType(); this.type = type; } public Class<E> getType() { return type; } }
こうすると、具体的な型パラメータを取得できる。
例えば
Hoe<Fuga> hoe = new Hoe<Fuga>();
という文があった場合、hoe.getType()はFuga.classになる。
かなり裏技的だけど。