Java 5 prend en charge les types énumérés. Ces derniers remplacent l'ancienne notion de typesafe, et sont beaucoup plus compacts et plus faciles à maintenir. Ils peuvent être utilisés pour répertorier des collections de valeurs telles que les jours de la semaine ou les suite d'un jeu de cartes, ou tout jeu de constantes fixe, tels que les commandes d'un menu.