Java- El significado de<T extends Comparable<T>>
?
a) Comparable <T>
es una interfaz genérica (recuerda que es una "interfaz" es decir no una "clase")
b) extends
significa herencia de una clase o una interfaz.
Desde arriba-dicho punto # a, que es una interfaz .. (Recuerde que es una herencia de una "interfaz" es decir, no a partir de una "clase")
c) Desde arriba-dijo que ambos puntos # a & #b,
aquí "una interfaz" extiende "otra interfaz".
Debe haber una interfaz definida para esta clase. sólo un ejemplo aquí es
interface MinMax<T extends Comparable<T>> {
T min();
T max();
}
d) ahora su clase es decir public class RClass {}
DEBE
1 # SEA "aplicar" este "interfaz genérica" Comparable<T>
.. !!!
ejemplo: public class RClass<T> implements Comparable<T>
2 # O crear una interfaz y extender a esta "interfaz genérica" Comparable<T>
ejemplo:
interface MinMax<T extends Comparable<T>> {
T min();
T max();
}
class RClass<T extends Comparable<T>> implements MinMax<T> {
.....
.....
}
Aquí, Prestar especial atención a la forma en que el parámetro de tipo T se declara por RClass y y luego pasa al MinMax
. Como MinMax
requiere un tipo que implemente Comparable
, , la clase de implementación (RClass en este caso) debe especificar el mismo límite. Además, una vez que se ha establecido este límite, no hay necesidad de especificarlo nuevamente en la cláusula de implementaciones.
Tenga en cuenta que '>' (creo que puede hacer eso allí), sería preferible, ya que podría querer 'T' ser más preciso que su implementación de' Comparable'. –
@ TomHawtin-tackline ¿Puedes dar un ejemplo de por qué esto es necesario? Supongamos que tengo mi estructura de datos de lista que solo funciona con tipos comparables. La forma en que yo especificaría esto es public class MyList>. Creo que eso indicaría y exigiría que mi estructura de datos solo funcione con tipos comparables. ¿De qué manera su fraseología marcaría la diferencia? –
committedandroider