Convenciones de nomenclatura de parámetros de tipo

Por convención, los nombres de los parámetros de tipo se denominan letras mayúsculas individuales para que un parámetro de tipo se pueda distinguir fácilmente con un nombre de clase o interfaz normal. A continuación se muestra la lista de nombres de parámetros de tipo de uso común:

  • E - Elemento, y es utilizado principalmente por el marco de colecciones de Java.

  • K - Clave, y se utiliza principalmente para representar el tipo de parámetro de clave de un mapa.

  • V - Valor, y se utiliza principalmente para representar el tipo de parámetro de valor de un mapa.

  • N - Número, y se utiliza principalmente para representar números.

  • T - Tipo, y se utiliza principalmente para representar el primer parámetro de tipo genérico.

  • S - Tipo, y se utiliza principalmente para representar el segundo parámetro de tipo genérico.

  • U - Tipo, y se utiliza principalmente para representar el tercer parámetro de tipo genérico.

  • V - Tipo, y se utiliza principalmente para representar el cuarto parámetro de tipo genérico.

El siguiente ejemplo mostrará el concepto mencionado anteriormente.

Ejemplo

Cree el siguiente programa Java utilizando cualquier editor de su elección.

GenericsTester.java

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GenericsTester {
   public static void main(String[] args) {
      Box<Integer, String> box = new Box<Integer, String>();
      box.add(Integer.valueOf(10),"Hello World");
      System.out.printf("Integer Value :%d\n", box.getFirst());
      System.out.printf("String Value :%s\n", box.getSecond());

      Pair<String, Integer> pair = new Pair<String, Integer>(); 
      pair.addKeyValue("1", Integer.valueOf(10));
      System.out.printf("(Pair)Integer Value :%d\n", pair.getValue("1"));

      CustomList<Box> list = new CustomList<Box>();
      list.addItem(box);
      System.out.printf("(CustomList)Integer Value :%d\n", list.getItem(0).getFirst());
   }
}

class Box<T, S> {
   private T t;
   private S s;

   public void add(T t, S s) {
      this.t = t;
      this.s = s;
   }

   public T getFirst() {
      return t;
   } 

   public S getSecond() {
      return s;
   } 
}

class Pair<K,V>{
   private Map<K,V> map = new HashMap<K,V>();

   public void addKeyValue(K key, V value) {
      map.put(key, value);
   }

   public V getValue(K key) {
      return map.get(key);
   }
}

class CustomList<E>{
   private List<E> list = new ArrayList<E>();

   public void addItem(E value) {
      list.add(value);
   }

   public E getItem(int index) {
      return list.get(index);
   }
}

Esto producirá el siguiente resultado.

Salida

Integer Value :10
String Value :Hello World
(Pair)Integer Value :10
(CustomList)Integer Value :10