Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемmit.spbau.ru
1 1Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 1 Метод void dump(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) { Object o = i.next(); System.out.println(o); } Вызовы List l; dump(l);
2 2Georgiy KorneevJava Advanced / Новые возможности Java 5 Решение 1 – wildcard Метод void dump(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) { Object o = i.next(); System.out.println(o); } Вызовы List l; dump(l);
3 3Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 2 Метод void draw(List c) { for (Iterator i = c.iterator(); i.hasNext(); ) { Shape s = i.next(); s.draw(); } Вызовы List l; draw(l);
4 4Georgiy KorneevJava Advanced / Новые возможности Java 5 Решение 2 – bounded wildcard Метод void draw(List c) { for (Iterator i = c.iterator(); i.hasNext(); ) { Shape s = i.next(); s.draw(); } Вызовы List l; draw(l);
5 5Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 3 Метод void addAll(Object[] a, Collection c) { for (int i = 0; i < a.length; i++) { c.add(a[i]); }
6 6Georgiy KorneevJava Advanced / Новые возможности Java 5 Решение 3 – generic-метод Метод void addAll(T[] a, Collection c) { for (int i = 0; i < a.length; i++) { c.add(a[i]); } Примеры использования addAll(new String[10], new ArrayList ()); addAll(new Object[10], new ArrayList ()); addAll(new String[10], new ArrayList ()); addAll(new Object[10], new ArrayList ());
7 7Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 4 Метод void addAll(Collection c, Collection c2) { for (Iterator i = c.iterator(); i.hasNext(); ) { T o = i.next(); c2.add(o); } Примеры использования addAll(new AL (), new AL ());
8 8Georgiy KorneevJava Advanced / Новые возможности Java 5 Решение 4 – bounded type argument Метод void addAll(Collection c, Collection c2) { for (Iterator i = c.iterator(); i.hasNext(); ) { S o = i.next(); c2.add(o); } Примеры использования addAll(new AL (), new AL ());
9 9Georgiy KorneevJava Advanced / Новые возможности Java 5 Решение 4 – bounded wildcard Метод void addAll(Collection c, Collection c2) { for (Iterator i = c.iterator(); i.hasNext(); ) { T o = i.next(); c2.add(o); } Примеры использования addAll(new AL (), new AL ());
10 10Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 5 Метод > T max(Collection c) { } Пример использования List il; Integer I = max(il); class Test implements Comparable {…} List tl; Test t = max(tl);
11 11Georgiy KorneevJava Advanced / Новые возможности Java 5 Решение 5 – upper bounded wcard Метод > max(Collection c) { … } Пример использования List il; Integer I = max(il); class Test implements Comparable {…} List tl; Test t = max(tl);
12 12Georgiy KorneevJava Advanced / Новые возможности Java 5 Wildcard Capture (1) void swap(List list, int i, int j) { // ? }
13 13Georgiy KorneevJava Advanced / Новые возможности Java 5 Wildcard Capture (2) void swap(List list, int i, int j) { swapImpl(list, i, j); } void swapImpl(List list, int i, int j) { T temp = list.get(i); list.set(i, list.get(j)); list.set(j, temp); }
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.