Buradaki fark, ilkinde, çağıranın bir Object örneğini (herhangi bir sınıf) iletmesi gerektiğini ve başka bir Object (herhangi bir sınıf, aynı türden olması gerekmez) geri alacağını belirtmemizdir.
İkincisinde, döndürülen tür, sınıf tanımlandığında verilenle aynı tür olacaktır.
Example ex = new Example<Integer>();
Burada, bir sınıf veya yöntem üzerinde daha fazla kısıtlama uygulamamıza izin veren T türünün ne olacağını belirtiyoruz. Örneğin, a LinkedList<Integer>
veya örneğini başlatabiliriz LinkedList<Example>
ve bu yöntemlerden birini çağırdığımızda, bir Tamsayı veya Örnek örneğini geri alacağımızı biliyoruz.
Buradaki ana amaç, çağıran kodun, bunu zorlamak için tür çevrimine güvenmek yerine, bir sınıfın hangi tür nesneler üzerinde çalışacağını belirtebilmesidir.
Oracle'dan Java Generics * konusuna bakın .
* Güncellenmiş Bağlantı.