Generics (generiske typer) lar klasser, grensesnitt og metoder parametriseres med en typeparameter, skrevet i vinkelparenteser, f.eks. class Boks eller List. Hovedgevinsten er typesikkerhet ved kompilering: kompilatoren sjekker at man bare legger inn og henter ut riktig type, slik at man slipper eksplisitte typekonverteringer og unngår ClassCastException ved kjøretid. Før generics (Java 5) måtte samlinger håndtere Object og kaste manuelt. En generisk metode kan skrive typeparameteren foran returtypen: T førsteElement(List liste). Generics gir gjenbrukbar, typesikker kode uten duplisering for hver type.