This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static <T,U> List<U> hoge(List<T> in) { | |
class InstanceGenerator<X> { | |
X instance(X ... x) throws InstantiationException, IllegalAccessException { | |
Class<?> xArrayClass = x.getClass(); | |
Class<X> xClass = (Class<X>) xArrayClass.getComponentType(); | |
return xClass.newInstance(); | |
} | |
} | |
InstanceGenerator<U> d = new InstanceGenerator<U>(); | |
List<U> out = new ArrayList<U>(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 渡された型から継承階層を登って、 | |
* 指定の親の型の指定の名前のジェネリクス型パラメータが | |
* 継承の過程で何型で具現化されているかを走査して返す。 | |
* @param clazz 走査開始する型 | |
* @param targetClass 走査する対象のジェネリクス型パラメータを持つ型。 | |
* 走査開始型の親である必要がある。 | |
* @param targetTypeName 何型で具現化されたを確認したい型パラメータのプレースホルダ名 | |
* @return 具現化された型 | |
*/ |