In this article I discuss
Generic as powerful compiler time check for typing rules for method parameters and return values. They often used for Collections for a runtime check of the elements added and the element you get back.