Java : Enum con ejemplos

Enum (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Enum<E extends Enum<E>>.

Nota :


Summary

Esta es la clase base común de todas las clases de enumeración del lenguaje Java. Puede encontrar más información sobre enumeraciones, incluidas descripciones de los métodos declarados implícitamente sintetizados por el compilador, en la sección 8.9 de La especificación del lenguaje Java. (Traducción automática)

Class diagram

enum Sample {
    AAA,
    BBB,
    CCC,
}

System.out.println(Sample.AAA.name()); // AAA
System.out.println(Sample.AAA.ordinal()); // 0

System.out.println(Sample.BBB.name()); // BBB
System.out.println(Sample.BBB.ordinal()); // 1

System.out.println(Sample.CCC.name()); // CCC
System.out.println(Sample.CCC.ordinal()); // 2

Enum classes have implicitly declared methods below.

  • public static T valueOf (String)
  • public static T[] values ()
final Sample aaa = Sample.valueOf("AAA");
System.out.println(aaa); // AAA

final Sample[] values = Sample.values();
System.out.println(Arrays.toString(values)); // [AAA, BBB, CCC]

More information about enums, you can be found in section 8.9 of The Java Language Specification.


Constructors

Enum (String name, int ordinal)

Único constructor. (Traducción automática)

Programmers can't invoke this constructor.

Methods

protected final Object clone ()

Lanza CloneNotSupportedException. (Traducción automática)

enum Sample {
    AAA, BBB, CCC;

    public void func() {
        System.out.println("func! : " + name());

        try {
            clone();
        } catch (CloneNotSupportedException e) {
            System.out.println("CloneNotSupportedException!");
        }
    }
}

Sample.AAA.func();

// Result
// ↓
//func! : AAA
//CloneNotSupportedException!

final int compareTo (E o)

Compara esta enumeración con el objeto especificado para el pedido. (Traducción automática)

enum SampleX {
    AAA,
    BBB,
    CCC,
}

enum SampleY {
    CCC,
    BBB,
    AAA,
}

System.out.println(SampleX.AAA.compareTo(SampleX.AAA)); // 0
System.out.println(SampleX.AAA.compareTo(SampleX.BBB)); // -1
System.out.println(SampleX.AAA.compareTo(SampleX.CCC)); // -2

System.out.println(SampleY.AAA.compareTo(SampleY.AAA)); // 0
System.out.println(SampleY.AAA.compareTo(SampleY.BBB)); // 1
System.out.println(SampleY.AAA.compareTo(SampleY.CCC)); // 2

final Optional<Enum.EnumDesc<E>> describeConstable ()

Devuelve un descriptor de enumeración EnumDesc para esta instancia, si se puede construir uno, o un Opcional vacío si no se puede construir. (Traducción automática)

enum Sample {
    AAA,
    BBB,
}

final var ret = Sample.AAA.describeConstable();
System.out.println(ret); // Optional[EnumDesc[Sample.AAA]]

final boolean equals (Object other)

Devuelve verdadero si el objeto especificado es igual a esta constante de enumeración. (Traducción automática)

enum SampleX {
    AAA,
    BBB,
}

enum SampleY {
    AAA,
    BBB,
}

System.out.println(SampleX.AAA.equals(SampleX.AAA)); // true
System.out.println(SampleX.AAA.equals(SampleX.BBB)); // false

System.out.println(SampleY.AAA.equals(SampleY.AAA)); // true
System.out.println(SampleY.AAA.equals(SampleY.BBB)); // false

System.out.println(SampleX.AAA.equals(SampleY.AAA)); // false
System.out.println(SampleY.BBB.equals(SampleX.BBB)); // false

protected final void finalize ()

En desuso, para su eliminación: este elemento API está sujeto a eliminación en una versión futura. La finalización ha quedado obsoleta para su eliminación. (Traducción automática)

Deprecated.

final Class<E> getDeclaringClass ()

Devuelve el objeto Class correspondiente al tipo de enumeración de esta constante de enumeración. (Traducción automática)

enum Sample {
    AAA,
    BBB,
}

final var decA = Sample.AAA.getDeclaringClass();
System.out.println(decA); // class Sample

final var decB = Sample.BBB.getDeclaringClass();
System.out.println(decB); // class Sample

System.out.println(decA == decB); // true

final int hashCode ()

Devuelve un código hash para esta constante de enumeración. (Traducción automática)

enum Sample {
    AAA,
    BBB,
    CCC,
}

System.out.println(Sample.AAA.hashCode()); // 648786246
System.out.println(Sample.BBB.hashCode()); // 120360571
System.out.println(Sample.CCC.hashCode()); // 1710814638

final String name ()

Devuelve el nombre de esta constante de enumeración, exactamente como se declara en su declaración de enumeración. (Traducción automática)

The API documentation says "Most programmers should use the toString() method in preference to this one".

enum Sample {
    AAA,
    BBB,
    CCC,
}

System.out.println(Sample.AAA.name()); // AAA
System.out.println(Sample.BBB.name()); // BBB
System.out.println(Sample.CCC.name()); // CCC

final int ordinal ()

Devuelve el ordinal de esta constante de enumeración (su posición en su declaración de enumeración, donde a la constante inicial se le asigna un ordinal de cero). (Traducción automática)

enum Sample {
    AAA,
    BBB,
    CCC,
}

System.out.println(Sample.AAA.ordinal()); // 0
System.out.println(Sample.BBB.ordinal()); // 1
System.out.println(Sample.CCC.ordinal()); // 2

String toString ()

Devuelve el nombre de esta constante de enumeración, tal como figura en la declaración. (Traducción automática)

enum Sample {
    AAA,
    BBB,
    CCC,
}

final var str1 = Sample.AAA.toString();
System.out.println(str1); // AAA

final var str2 = Sample.BBB.toString();
System.out.println(str2); // BBB

final var str3 = Sample.CCC.toString();
System.out.println(str3); // CCC

static <T extends Enum<T>> T valueOf (Class<T> enumClass, String name)

Devuelve la constante de enumeración de la clase de enumeración especificada con el nombre especificado. (Traducción automática)

enum Sample {
    AAA,
    BBB,
    CCC,
}

final var aaa = Enum.valueOf(Sample.class, "AAA");
System.out.println(aaa); // AAA

final var bbb = Enum.valueOf(Sample.class, "BBB");
System.out.println(bbb); // BBB

try {
    Enum.valueOf(Sample.class, "ZZZ");
} catch (IllegalArgumentException e) {
    System.out.println("IllegalArgumentException! : " + e.getMessage());
}

// Result
// ↓
//IllegalArgumentException! : No enum constant null.ZZZ

Instead, it would be better to use the following method.

  • public static T valueOf (String)
final var aaa = Sample.valueOf("AAA");
System.out.println(aaa); // AAA

Related posts

To top of page