¿Cuál es el sentido de esta definición de clase? ¿Qué clase de clase es esa?Nombre de clase de definición de clase <>
class Node<K extends Comparable<? super K>,V>
¿Cuál es el sentido de esta definición de clase? ¿Qué clase de clase es esa?Nombre de clase de definición de clase <>
class Node<K extends Comparable<? super K>,V>
Esta es una definición de clase genérica. Se traduce a:
Comparable
Comparable
sí misma, en este caso, tiene algún tipo como parámetro, vamos a llamarlo T.Editar: Ok, ya que se solicitó un ejemplo, un simple instanciación de esta clase podría ser:
Node<Integer, String> node = new Node<Integer, String>();
Puesto que la clase Integer
implementa Comparable<Integer>
se ajusta a la descripción anterior bien (tenga en cuenta que super
permite también de tipo T a el mismo tipo que K).
V no tiene restricciones, por lo que puede ser de cualquier tipo.
+1 me ganó un par de segundos, estaba formateando el código :) –
Bien, entonces usted dio una traducción directa de la firma ... ¿podría proporcionar un ejemplo de una clase que podría usarse para 'K ', y tal vez una explicación de dónde este tipo de clase sería útil? – StriplingWarrior
Es útil en la implementación de la estructura de datos Red-Black Tree. http://en.literateprograms.org/Red-black_tree_(Java) Pero también me gustaría saber, en qué otro lugar puede ser útil. –
Es una clase genérica de tipos de K
y V
, donde K
es un tipo que se extiende Comparable
de cualquier clase que es una superclase de K
.
parece que es de una implementación de un árbol rojo-negro diseñados para fines explicativos:
Red-black tree implemented in Java
Más allá de eso, es una clase llamada Node
que toma parámetros K y V, donde K se extiende Comparable
, que toma un parámetro que es en sí mismo una superclase de K.
correcto, es una definición de clase tomada de esa fuente. –
Por favor, marque su pregunta con el lenguaje de programación apropiado. – ghik