Tipo Convenzioni di denominazione dei parametri
Per convenzione, i nomi dei parametri di tipo sono denominati come singole lettere maiuscole in modo che un parametro di tipo possa essere facilmente distinto con un nome di classe o interfaccia normale. Di seguito è riportato l'elenco dei nomi dei parametri di tipo comunemente utilizzati:
E - Element, ed è utilizzato principalmente dal framework Java Collections.
K - Key, e viene utilizzato principalmente per rappresentare il tipo di parametro della chiave di una mappa.
V - Value, e viene utilizzato principalmente per rappresentare il tipo di parametro di valore di una mappa.
N - Numero, e viene utilizzato principalmente per rappresentare i numeri.
T - Tipo, e viene utilizzato principalmente per rappresentare il primo parametro di tipo generico.
S - Tipo, e viene utilizzato principalmente per rappresentare il secondo parametro di tipo generico.
U - Tipo, e viene utilizzato principalmente per rappresentare il terzo parametro di tipo generico.
V - Tipo, e viene utilizzato principalmente per rappresentare il quarto parametro di tipo generico.
L'esempio seguente mostrerà il concetto sopra menzionato.
Esempio
Crea il seguente programma java utilizzando qualsiasi editor di tua scelta.
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);
}
}
Questo produrrà il seguente risultato.
Produzione
Integer Value :10
String Value :Hello World
(Pair)Integer Value :10
(CustomList)Integer Value :10