静的なジェネリックメソッドに関する奇妙な状況に遭遇しました。これはコードです:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
式で型引数を指定する必要がないのはFoo.createFoo()
なぜですか?これはある種の型推論ですか?それについて明示的にしたい場合、型引数をどのように指定できますか?
7
createFooメソッドのタイプパラメータEを変更することをお勧めします。ので、クラスFooの型パラメーターEは、メソッドcreateFoo()の型パラメーターEとは異なります。
—
Gursel Koca
@GurselKoca彼は明示的にmember = Foo。<E> createFoo();を実行できました。コンパイル時と同じにする必要があります。
—
George Xavier