Last updated
Last updated
По конвенция имената на параметрите на типа са с единични главни букви. Параметрите на генериците се именуват както следва:
E - Елемент (използван широко от Java Collections Framework)
K - Ключ
N - Число
T - Тип
V - Стойност
S,U,V и т.н. - 2-ри, 3-ти, 4-ти тип
Raw тип се нарича генеричен клас или интерфейс, при употребата на който не са приложени параметри за тип. Като пример можем да разгледаме генерик класа Box:
За да бъде създаден параметризиран тип Box, е необходимо като аргумент на формалния параметър T да се добави използвания за казуса тип:
Но ако аргументът, задаващ използвания тип, се пропусне, се създава raw тип на Box:
Следователно Box е raw тип на генеричния тип Box<T>. Трябва да се има предвид обаче, че обикновените класове и интерфейси не са raw тип.
Raw типове се откриват в наследен (legacy) код, тъй като много API класове (като класовете на колекциите ) не са били генерици преди JDK 5.0. Когато използвате raw типове, вие по същество получавате негенерично поведение - Box ви дава Object s. За обратна съвместимост е разрешено присвояването на параметризиран тип към неговия raw тип:
Но ако присвоите необработен тип на параметризиран тип, получавате предупреждение:
Предупреждението показва, че необработените типове заобикалят общите проверки за типове, като отлагат улавянето на опасен код за времето за изпълнение. Следователно трябва да избягвате използването на сурови видове.