java tipo genérico `< E extiende Enum <E> >`

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 Ees Enumuna subclase de la clase compareToEl 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 enumpalabras clave equivale a crear una DAYclase, y la DAYclase 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 DAYclase hereda todos los Enum<DAY>métodos, como los compareTométodos, y los compareTométodos deben usarse DAYcomo parámetros, por Enumlo Eque se usan los parámetros de tipo.

Referencia:
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ106

Supongo que te gusta

Origin blog.csdn.net/claroja/article/details/114154507
Recomendado
Clasificación