Я столкнулся с любопытной ситуацией, включающей статические общие методы. Это код:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
Почему мне не нужно указывать какие-либо аргументы типа в выражении Foo.createFoo()
? Это какой-то тип вывода? Если я хочу быть явным, как указать аргумент типа?