Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The concept of a data structure, such as a stack, can be understood independently of the element type it manipulates. Generic classes provide a means for describing the concept of a stack (or any other class) in a type-independent manner. We can then instantiate type-specific objects of the generic class. This capability provides a wonderful opportunity for software reusability.
Once you have a generic class, you can use a simple, concise notation to indicate the type(s) that should be used in place of the class’s type parameter(s). At compilation time, the compiler ensures the type safety of your code and uses the erasure techniques described in Sections 21.3–21.4 to enable your client code to interact with the generic class.