Convenções de nomenclatura de parâmetros de tipo
Por convenção, os nomes dos parâmetros de tipo são nomeados como simples letras maiúsculas para que um parâmetro de tipo possa ser distinguido facilmente com uma classe comum ou nome de interface. A seguir está a lista de nomes de parâmetros de tipo comumente usados -
E - Elemento, e é usado principalmente pelo framework Java Collections.
K - Chave, e é usado principalmente para representar o tipo de parâmetro da chave de um mapa.
V - Valor, e é usado principalmente para representar o tipo de parâmetro de valor de um mapa.
N - Número, e é usado principalmente para representar números.
T - Digite e é usado principalmente para representar o primeiro parâmetro de tipo genérico.
S - Digite e é usado principalmente para representar o segundo parâmetro de tipo genérico.
U - Type, e é usado principalmente para representar o terceiro parâmetro de tipo genérico.
V - Digite e é usado principalmente para representar o quarto parâmetro de tipo genérico.
O exemplo a seguir mostrará o conceito mencionado acima.
Exemplo
Crie o seguinte programa java usando qualquer editor de sua escolha.
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);
}
}
Isso produzirá o seguinte resultado.
Resultado
Integer Value :10
String Value :Hello World
(Pair)Integer Value :10
(CustomList)Integer Value :10