我遇到了一个涉及静态泛型方法的奇怪情况。这是代码:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
为什么我不必在表达式 Foo.createFoo()
中指定任何类型参数?这是某种类型推断吗?如果我想明确一点,如何指定类型参数?
最佳答案
是的,这是基于分配目标的类型推断,根据 JLS section 15.12.2.8 .明确地说,你可以这样称呼:
Foo.<String>createFoo();
关于java - 调用静态泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297978/