정적 제네릭 메서드와 관련된 흥미로운 상황을 발견했습니다. 다음은 코드입니다.
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
식에 유형 인수를 지정할 필요가없는 이유는 Foo.createFoo()
무엇입니까? 이것은 일종의 유형 추론입니까? 이에 대해 명시 적으로 지정하려면 형식 인수를 어떻게 지정할 수 있습니까?
7
createFoo 메서드의 유형 매개 변수 E를 변경하는 것이 좋습니다. 왜냐하면 Foo 클래스의 유형 매개 변수 E는 createFoo () 메소드의 유형 매개 변수 E와 다르기 때문입니다.
—
Gursel Koca 2011 년
@GurselKoca 그는 명시 적으로 멤버 = Foo. <E> createFoo (); 컴파일 시간과 동일해야합니다.
—
George Xavier 19