0

ジェネリック型の Foo というクラスがあるとします。

public class Foo<T> { ...

そして、Foos を生成する Foo Factory と呼ばれる、パラメーター化されていない別のクラスがあります。

public class FooFactory {
    public static Foo createFoo() { 
        return new Foo();
    }
}

を作成できるようにClass clazzパラメータを渡す方法はありますか?createFooFoo<clazz>

public class FooFactory {
    public static Foo createFoo(Class clazz) {
        return new Foo<clazz>();
    }
}
4

2 に答える 2

3

ファクトリcreateFooメソッドをジェネリックにします。

public static <T> Foo<T> createFoo(Class<T> clazz) {
    return new Foo<T>();
}

結局のところ、必要さえありませんclazz; Java が推論する<T>ので、これで十分です。

public static <T> Foo<T> createFoo() {
    return new Foo<T>();
}
于 2013-11-08T20:56:09.360 に答える