Центрдистанционногообучения
Конвенция кода Java об именах для формальных типов
Например:
•<E> для элемента коллекции;
•<T> для обобщенного типа;
•<K, V> ключ и значение.
•<N> для чисел
•S,U,V, и т.д. для второго, третьего, четвертого типа параметра
•
online.mirea.ru
Центрдистанционногообучения
ДЖЕНЕРИКИ (Generics)
Дженерики являются способом определить, какие типы допустимы в вашем классе или функции
// старыйспособ
List myIntList1 = new LinkedList(); // 1 myIntList1.add(new Integer(0)); // 2
Integer x1 = (Integer) myIntList1.iterator().next(); // 3
// с generics
List<Integer> myIntList2 = new LinkedList<Integer>(); // 1’ myIntList2.add(new Integer(0)); // 2’
Integer x2 = myIntList2.iterator().next(); // 3’
можно поместить здесь только 0, используя Автоупаковку
online.mirea.ru
7
Центрдистанционногообучения
Пример 1 – Определение обобщенных типов:
ДЖЕНЕРИКИ (Generics)
public interface List<E> { void add(E x); Iterator<E> iterator();
}
public interface Iterator<E> { E next();
boolean hasNext();
}
public interface Map<K,V> { V put(K key, V value);
}
online.mirea.ru
8
ДЖЕНЕРИКИ (Generics) |
Центрдистанционногообучения |
|
Пример 2 –определение (собственных) универсальных или обобщенных типов:
public class GenericClass<T> { private T obj;
public void setObj(T t) {obj = t;} public T getObj() {return obj;} public void print() { System.out.println(obj);
}
}
Main:
GenericClass<Integer> g = new GenericClass<Integer>(); g.setObj(5); // автоупаковка
int i = g.getObj(); // автораспаковкаg.print();
online.mirea.ru
9
Центрдистанционногообучения
Абстрактные типы данныхконтейнеры
10
online.mirea.ru