ฉันเจอสถานการณ์ที่น่าสงสัยเกี่ยวกับวิธีการทั่วไปแบบคงที่ นี่คือรหัส:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
ทำไมฉันไม่ต้องระบุอาร์กิวเมนต์ประเภทใด ๆ ในนิพจน์Foo.createFoo()
? นี่เป็นการอนุมานประเภทหนึ่งหรือไม่? ถ้าฉันต้องการให้ชัดเจนเกี่ยวกับเรื่องนี้ฉันจะระบุประเภทอาร์กิวเมนต์ได้อย่างไร