Natknąłem się na ciekawą sytuację związaną ze statycznymi metodami ogólnymi. To jest kod:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
Dlaczego nie muszę określać żadnych argumentów typu w wyrażeniu Foo.createFoo()
? Czy to jakiś rodzaj wnioskowania o typie? Jeśli chcę to wyraźnie określić, jak mogę określić argument typu?