java – 调用静态通用方法

我遇到了一个涉及静态通用方法的好奇情况。这是代码:

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();
http://stackoverflow.com/questions/5297978/calling-static-generic-methods

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 调用静态通用方法