Další věc, která doposud v Javě chybí, je typ {\em enum}. To se doposud řešilo několika způsoby, od definování konstant typu int (což postrádá jakoukoliv typovou kontrolu) až po užívání typově bezpečného řešení založeného na definici třídy pro každý výčtový typ, navrženého v \cite{Bloch:2002}. Toto řešení ve své nejjednodušší variantě vypadá takto:
public class Color {
private Color() {};
public static final Color red = new Color();
public static final Color green = new Color();
public static final Color blue = new Color();
public static final Color yellow = new Color();
}
Právě na tomto principu je založená implementace výčtového typu, která je od verze 1.5 přímou součástí jazyka Java. Výčtový typ se zde ale definuje mnohem snadněji:
public enum Color { red, green, blue, yellow };
Pro úplnost je nutné poznamenat, že takto definovaný výčtový typ disponuje mnohem širšími možnostmi než předchozí varianta. Dále viz dokumentace API k Java 5.