Conventions de dénomination des paramètres de type

Par convention, les noms de paramètres de type sont nommés sous forme de lettres majuscules uniques afin qu'un paramètre de type puisse être facilement distingué avec un nom de classe ou d'interface ordinaire. Voici la liste des noms de paramètres de type couramment utilisés -

  • E - Élément, et est principalement utilisé par le framework Java Collections.

  • K - Clé, et est principalement utilisé pour représenter le type de paramètre de clé d'une carte.

  • V - Valeur, et est principalement utilisé pour représenter le type de paramètre de valeur d'une carte.

  • N - Nombre, et est principalement utilisé pour représenter des nombres.

  • T - Type, et est principalement utilisé pour représenter le premier paramètre de type générique.

  • S - Type, et est principalement utilisé pour représenter le deuxième paramètre de type générique.

  • U - Type, et est principalement utilisé pour représenter le troisième paramètre de type générique.

  • V - Type, et est principalement utilisé pour représenter le quatrième paramètre de type générique.

L'exemple suivant présentera le concept mentionné ci-dessus.

Exemple

Créez le programme Java suivant en utilisant n'importe quel éditeur de votre choix.

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);
   }
}

Cela produira le résultat suivant.

Production

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