정적 제네릭 메서드와 관련된 흥미로운 상황을 발견했습니다. 다음은 코드입니다.
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();