Genéricos en Java. Programación

Sería bueno si pudiéramos escribir un único método de ordenación usando genericos en java de forma que se pudiera ordenar los elementos en una matriz Integer, una matriz String o una matriz de cualquier tipo que admita el ordenamiento.

Los métodos genéricos en Java y las clases genéricas permiten a los programadores especificar, con una única declaración de método, un conjunto de métodos relacionados, o con una única declaración de clase, un conjunto de tipos relacionados, respectivamente.

Los genéricos también proporcionan seguridad de tipo en tiempo de compilación que permite a los programadores detectar tipos no válidos en tiempo de compilación.

Usando el concepto genérico de Java, podríamos escribir un método genérico para clasificar una matriz de objetos, luego invocar el método genérico con matrices de enteros, matrices dobles, matrices de cadenas, etc., para ordenar los elementos de la matriz.

Métodos genéricos

Puede escribir una única declaración de método genérico que se puede llamar con argumentos de diferentes tipos. En función de los tipos de argumentos pasados ​​al método genérico, el compilador maneja cada llamada de método de manera apropiada. Las siguientes son las reglas para definir métodos genéricos:

  • Todas las declaraciones de métodos genéricos tienen una sección de parámetros de tipo delimitada por corchetes angulares (<y>) que preceden al tipo de retorno del método (<E> en el siguiente ejemplo).

  • Cada sección de parámetros de tipo contiene uno o más parámetros de tipo separados por comas. Un parámetro de tipo, también conocido como variable de tipo, es un identificador que especifica un nombre de tipo genérico.

  • Los parámetros de tipo se pueden usar para declarar el tipo de retorno y actuar como marcadores de posición para los tipos de argumentos pasados ​​al método genérico, que se conocen como argumentos de tipo real.

  • El cuerpo de un método genérico se declara como el de cualquier otro método. Tenga en cuenta que los parámetros de tipo solo pueden representar tipos de referencia( Integer, String, etc), no tipos primitivos (como int, double y char).

Abrir chat
Powered by