public abstract class Enum<E extends Enum<E>>{
public final int compareTo( E o) {
... }
}
Fuente de enumeración en <E extends Enum<E>>
un formato genérico significa:
Esta clase puede ser subclase subclase instanciada hereda sus métodos es los tipos E
es Enum
una subclase de la clase compareTo
El parámetro del método es el tipo E
, ambas subclases.
package com;
enum DAY {
MON, TUE, WED, THU, FRI, SAT, SUN }
public class App2 {
public static void main(String[] args) {
DAY day = DAY.MON;
System.out.println(day);
}
}
El uso de enum
palabras clave equivale a crear una DAY
clase, y la DAY
clase hereda los Enum
resultados de la compilación del compilador son los siguientes:
enum DAY {
MON, TUE, WED, THU, FRI, SAT, SUN }
public final class DAY extends Enum<DAY> {
public static final DAY MON;
...
static {
MON = new DAY("MON", 0);
}
}
La DAY
clase hereda todos los Enum<DAY>
métodos, como los compareTo
métodos, y los compareTo
métodos deben usarse DAY
como parámetros, por Enum
lo E
que se usan los parámetros de tipo.
Referencia:
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ106