2011-11-06 8 views
7

¿Por qué esta compilación:¿Por qué el límite genérico "E implementa I" da como resultado un error de compilación?

class MaxMin<E extends Comparable<E>> 
{ 
    E max=null; 
    E min=null; 
} 

... pero esto no lo hace?

class MaxMin<E implements Comparable<E>> 
{ 
    E max=null; 
    E min=null; 
} 
+0

publicar los errores de compilación también. ¿ – Kashyap

+0

comparable no es una interfaz? – Joe

+0

@IAbstractDownvoteFactory, [Comparable] (http://download.oracle.com/javase/7/docs/api/java/lang/Comparable.html) es una interfaz. –

Respuesta

15

límites tipo genérico sólo especifican extends y super.

Citando la Java Generics Tutorial (énfasis mío)

Declarar un parámetro de tipo acotada, lista Nombre del parámetro Tipo, seguido de la palabra clave extends, seguido de su límite superior, que en este ejemplo es número. Tenga en cuenta que, en este contexto, se extiende se utiliza en un sentido general a significar tanto "se extiende" (como en las clases) o "instrumentos" (como en las interfaces)

Cuestiones relacionadas