A type variable is an unqualified or complete identifier. Generic class, interface, method and constructor declarations introduce Type variables.
Generics is one type of facility of the generic programming and in 2004, it was added to the Java programming language in the java official release version J2SE 5.0
In 1998, Gilad Bracha, David Stoutamire, Martin Odersky and Philip Wadler created Generic Java as an extension to the Java language to support generic types. Generic Java was merged in Java with the addition of wildcards.
There are many benefits if you use generics in your code: • It strongly checks type at compile time and provides compile time type safety. • It has removed ClassCastException that is common senrio at java collection classes.