## Notes
Means to *parameterize* a type. Allows us to write code that works with different data types in a more safe manner.
## Why?
- Java Collections could store any type of object
- When adding `String` to a `List`, Java would not remember its type and it would have to be explicitly type-cast
## Types of Generics
- Class
- Method
## Generic Class
```java
```