Výčtový typ

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.