Skip to content

Instantly share code, notes, and snippets.

@nagise
nagise / SearchGenericTypeSample
Created January 13, 2012 05:20
渡された型から継承階層を登ってバインドされた型を得るサンプル
/**
* 渡された型から継承階層を登って、
* 指定の親の型の指定の名前のジェネリクス型パラメータが
* 継承の過程で何型で具現化されているかを走査して返す。
* @param clazz 走査開始する型
* @param targetClass 走査する対象のジェネリクス型パラメータを持つ型。
* 走査開始型の親である必要がある。
* @param targetTypeName 何型で具現化されたを確認したい型パラメータのプレースホルダ名
* @return 具現化された型
*/
@nagise
nagise / GenericListConverterSample
Created January 13, 2012 03:53
ジェネリックなListの詰替えサンプル
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>();