Generic programming, is a programming style that strives to make programs more adaptable and robust through compile-time typechecking and by emphasizing the use of polymorphic datatypes and parameterized methods....[1]
As an example, C++ generics are utilized with the use of templates which the STL library provides support for. In Java, generics have only recently been made available as of version 1.5 [2]where parametric datatypes have been added to the language.