# Java Generics

One of the most powerful features of Java is its support for generics. Generics
is a language feature that enables us to write code that operates on various
datatypes while still providing compile-time type safety. One way to write
such code relies heavily on the use of the `Object` type and casting, however,
this often leads to programming mistakes that are not caught until run-time.
With generics, we can can write the desired code a way that avoids casting
and enables compile-time checking.

<hr/>

[![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-nc-nd/4.0/)

<small>
Copyright &copy; Michael E. Cotterell, Bradley J. Barnes, and the University of Georgia.
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License</a> to students and the public.
The content and opinions expressed on this Web page do not necessarily reflect the views of nor are they endorsed by the University of Georgia or the University System of Georgia.
</small>
