2011-12-07 18 views

Respuesta

13

Esta es una definición de clase genérica. Se traduce a:

  • Nodo clase toma dos tipos como parámetros: K y V.
  • del tipo K debe extender la clase Comparable
  • la clase Comparable sí misma, en este caso, tiene algún tipo como parámetro, vamos a llamarlo T.
  • tipo T debe ser una superclase de K.

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.

+0

+1 me ganó un par de segundos, estaba formateando el código :) –

+1

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

+0

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. –

1

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.

1

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.

+0

correcto, es una definición de clase tomada de esa fuente. –

Cuestiones relacionadas