Konwencje nazewnictwa parametrów typu
Zgodnie z konwencją nazwy parametrów typu są nazywane pojedynczymi, dużymi literami, dzięki czemu parametr typu można łatwo odróżnić za pomocą zwykłej nazwy klasy lub interfejsu. Poniżej znajduje się lista najczęściej używanych nazw parametrów typu -
E - Element i jest używany głównie przez środowisko Java Collections.
K - Klucz i jest używany głównie do reprezentowania typu parametru klucza mapy.
V - Wartość i służy głównie do reprezentowania typu parametru wartości mapy.
N - Liczba i służy głównie do reprezentowania liczb.
T - Typ i jest używany głównie do reprezentowania pierwszego parametru typu ogólnego.
S - Typ i jest używany głównie do reprezentowania drugiego parametru typu ogólnego.
U - Typ i jest używany głównie do reprezentowania trzeciego parametru typu ogólnego.
V - Typ i jest używany głównie do reprezentowania czwartego parametru typu ogólnego.
Poniższy przykład pokaże powyższą koncepcję.
Przykład
Utwórz następujący program Java za pomocą dowolnego wybranego edytora.
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);
}
}
Spowoduje to następujący wynik.
Wynik
Integer Value :10
String Value :Hello World
(Pair)Integer Value :10
(CustomList)Integer Value :10