1. 程式人生 > >java之泛型

java之泛型

一次 數據 addall sta AC 必須 推薦 string ext

 1 /*
 2      * a. 泛型的好處
 3      *         提高安全性(將運行期的錯誤轉換到編譯期)
 4      *         省去強制類型轉換的麻煩
 5      * b. 泛型基本使用
 6      *         <>中放的必須是引用數據類型
 7      * c.泛型使用的註意事項
 8      *         前後的泛型必須一致,或者後面的泛型可以省略不寫(1.7新特性菱形泛型)
 9      */
10     public static void main(String[] args) {
11 
12         ArrayList<Person> list = new
ArrayList<Person>(); 13 list.add(new Person("張三", 19)); 14 list.add(new Person("李四", 20)); 15 Iterator<Person> it = list.iterator(); 16 while (it.hasNext()) { 17 Person p = it.next(); 18 System.out.println(p.getName() + "..." + p.getAge()); //
張三...19 李四...20 19 20 //System.out.println(it.next().getName() + "..." + it.next().getAge()); 21 //張三...20 當使用next()方法的時候需要註意,不能直接用it.next()調用屬性或方法,只能調用一次next()方法,否則就會造成數據錯位 22 } 23 } 24 25 /////////////////////////////////////////////////////////////////////// 26 27 public class Demo3_Generic { 28 29 public static void main(String[] args) {
30 31 } 32 33 } 34 35 interface Inter<T>{ 36 public void show(T t); 37 38 } 39 40 class Deom implements Inter<String>{ 41 //第一種實現類加泛型,推薦用這種方法 42 @Override 43 public void show(String t) { 44 System.out.println(t); 45 } 46 47 } 48 49 class Demo2<T> implements Inter<T>{ 50 //第二種實現類加泛型,因為沒有必要在類上加泛型 51 @Override 52 public void show(T t) { 53 System.out.println(t); 54 } 55 56 } 57 58 //////////////////////////////////////////////////////////////////////////// 59 60 public class Demo4_Generic { 61 62 /* 63 * A: 泛型通配符<?> 64 * 任意類型,如果沒有明確,那麽就是Object以及任意的Java類 65 * B: ? extends E 66 * 向下限定,E及其子類 67 * C: ? super E 68 * 向上限定,E及其父類 69 */ 70 public static void main(String[] args) { 71 72 //List<?> list = new ArrayList<String>(); 73 ArrayList<Person> list1 = new ArrayList<>(); 74 list1.add(new Person("張三", 23)); 75 list1.add(new Person("李四", 24)); 76 77 ArrayList<Worker> list2 = new ArrayList<>(); 78 list2.add(new Worker("王五", 25)); 79 80 list1.addAll(list2); 81 82 System.out.println(list1); 83 84 } 85 86 } 87 88 /////////////////////////////////////////////////////////////////

java之泛型