[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 섹션 15.12.2.8 에 따라 할당 대상을 기반으로 한 유형 추론 입니다. 명시 적으로 말하면 다음과 같이 호출합니다.

Foo.<String>createFoo();


답변