Perbedaannya di sini adalah bahwa di bagian pertama, kita menetapkan bahwa pemanggil harus meneruskan instance Object (kelas apa pun), dan itu akan mendapatkan kembali Object lain (kelas apa pun, tidak harus dari tipe yang sama).
Yang kedua, tipe yang dikembalikan akan menjadi tipe yang sama seperti yang diberikan saat kelas didefinisikan.
Example ex = new Example<Integer>();
Di sini kita menentukan tipe T apa yang memungkinkan kita untuk memberlakukan lebih banyak batasan pada kelas atau metode. Misalnya kita dapat membuat LinkedList<Integer>
atau LinkedList<Example>
dan kita tahu bahwa ketika kita memanggil salah satu metode ini, kita akan mendapatkan kembali contoh Integer atau Contoh.
Tujuan utamanya di sini adalah bahwa kode pemanggil dapat menentukan tipe objek apa yang akan dioperasikan kelas, alih-alih mengandalkan tipe-casting untuk memberlakukannya.
Lihat Java Generics * dari Oracle.
* Tautan yang Diperbarui.