Generic Programming

Generic programming means to write code that can be reused for objects of many different types :
Focus:
Why Generic Programming?
Definition of a Simple Generic Class
Generic Methods
Bounds for Type Variables
Generic Code and the Virtual Machine
Restrictions and Limitations
Inheritance Rules for Generic Types
Wildcard Types