Tôi đã gặp một tình huống tò mò liên quan đến các phương pháp chung tĩnh. Đây là mã:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
Tại sao tôi không phải chỉ định bất kỳ đối số kiểu nào trong biểu thức Foo.createFoo()? Đây có phải là một loại suy luận kiểu? Nếu tôi muốn rõ ràng về nó, tôi có thể chỉ định đối số kiểu như thế nào?
7
Tôi khuyên bạn nên thay đổi tham số kiểu E của phương thức createFoo. Bởi vì, tham số kiểu E của lớp Foo khác với tham số kiểu E của phương thức createFoo ().
—
Gursel Koca
@GurselKoca Anh ấy rõ ràng có thể làm member = Foo. <E> createFoo (); yêu cầu chúng giống như thời gian biên dịch.
—
George Xavier