'Generics' are very close to Templates in C++. The support for the concept of type parameters, which makes it possible to design classes which take in a generic type and determine the actual type later on. This means that by using a generic type parameter T, you can write a single class MyList < T > and the client code can use it as MyList < int >, MyList < string > or MyList < MyClass > without any risk of runtime casts or boxing operations. This article define the objective of generic in actual scenario.