Generics in Java

From the Java cheat sheet · Generics · verified Jul 2026

Generics

Generic classes, methods, bounds, and wildcards.

java
// Quick Reference
class Box<T> { T value; }
<T> T first(List<T> list) { return list.get(0); }
List<? extends Number> nums;   // wildcard
💡 Generics give compile-time type safety and remove manual casts.
⚡ <T extends Number> bounds the type so you can call Number methods on T.
📌 Use ? extends for reading (producers), ? super for writing (consumers) - PECS.
🟢 Type parameters are erased at runtime (type erasure) - no new T() or T.class.
genericswildcards
Back to the full Java cheat sheet