Java – Genéricos

Anuncios

Sería bueno si pudiéramos escribir un método de clasificación único que pudiera clasificar los elementos en una matriz de enteros, una matriz de cadenas , o una matriz de cualquier tipo que admita la ordenación.

Los métodos genéricos de 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 tipos 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 ordenar una matriz de objetos, luego invoque el método genérico con matrices de números 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 puede ser ca Lleno de argumentos de diferentes tipos. Según los tipos de argumentos pasados al método genérico, el compilador maneja cada llamada al 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ámetro de tipo delimitada por paréntesis angulares (< y >) que precede al tipo de retorno del método (< E > en el siguiente ejemplo ).

  • Cada sección de parámetro 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 pueden representar solo tipos de referencia, no tipos primitivos (como int, double y char).

Ejemplo

El siguiente ejemplo ilustra cómo puede imprimir una matriz de tipo diferente usando un solo método genérico –

Esto producirá el siguiente resultado –

Salida

Array integerArray contains:1 2 3 4 5 Array doubleArray contains:1.1 2.2 3.3 4.4 Array characterArray contains:H E L L O

Parámetros de tipo acotado

Puede haber ocasiones en las que desee restringir los tipos de tipos que se pueden pasar a un parámetro de tipo. Por ejemplo, un método que opera con números puede solo quiero aceptar instancias de Number o sus subclases. Para esto son los parámetros de tipo acotado.

Para declarar un parámetro de tipo acotado, enumere el nombre del parámetro de tipo, seguido de la palabra clave extiende, seguido de su límite superior.

Ejemplo

El siguiente ejemplo ilustra cómo se usa extiende en un sentido general para significar «extiende» (como en las clases) o «implementa» (como en las interfaces) . Este ejemplo es un método genérico para devolver el mayor de tres objetos comparables.

Esto producirá el siguiente resultado:

Salida

Max of 3, 4 and 5 is 5Max of 6.6,8.8 and 7.7 is 8.8Max of pear, apple and orange is pear

Clases genéricas

Una declaración de clase genérica se ve como una declaración de clase no genérica, excepto que el nombre de la clase va seguido de una sección de parámetro de tipo.

Al igual que con genérico métodos, la sección de parámetros de tipo de una clase genérica puede tener uno o más parámetros de tipo separados por comas. Estas clases se conocen como clases parametrizadas o tipos parametrizados porque aceptan uno o más parámetros.

Ejemplo

El siguiente ejemplo ilustra cómo podemos definir una clase genérica –

Esto producirá el siguiente resultado:

Salida

Integer Value :10String Value :Hello World
Anuncios

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *