Generics: то есть «параметризованный тип», управляемый тип данных определяется как параметр. Этот механизм позволяет программистам обнаруживать незаконные типы во время компиляции.
Разница между не использовать дженерики и использование дженериков
Нет общего кода:
Импорт java.util.arraylist; import java.util.list; public class nogenerics {public static void main (string [] args) {list arraylist = new ArrayList (); ArrayList.Add ("1"); // Тип символа arraylist.add (1); // Тип числа для (int i = 0; i <arraylist.size (); i ++) {string s = (string) arraylist.get (i); // Чистое преобразование, но не может быть преобразовано в тип символов, и никакой ошибки не сообщалось для системы компиляции.Используя общий код:
import java.util.arraylist; import java.util.list; public class generics {public static void main (string [] args) {list <string> stringlist = new arraylist <string> (); list <Integer> integerlist = new arraylist <> (); // упростить stringlist.add ("1"); //Stringlist.add(1); // ошибка компиляции, только тип символа может быть добавлен integerlist.add (1); //Integerlist.add("1 "); // ошибка компиляции, только тип номера может быть добавлен для (int i = 0; i <stringlist.size (); i ++) {String s = stringlist.get (i); System.out.println (s);} для (int j = 0; j <integerList.size (); j ++) {int i = integerlist.get (j);Примечание. В версии JDK, List <string> StringList = new ArrayList <String> (); может быть сокращено как список <string> stringlist = new ArrayList <> ();
Преимущества дженериков:
1. Тип безопасности; Например, List <string> может вставить только типы строк, просто установите его в виде ограничивающих типов.
2. Устранение кастинга; Сделайте код более читабельным и уменьшите вероятность ошибок.
3. Потенциальные преимущества производительности; Дженерики приносят возможности для большей оптимизации. Если нет дженериков, программисты будут указывать эти составы.
Уведомление:
1. Параметры типа общих типов могут быть только типами классов (включая пользовательские классы), а не простые типы. Например, список <строка, человек>
2. Может быть несколько параметров типа для дженериков, таких как List <String, Integer>