java之泛型

Posted jiangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之泛型相关的知识,希望对你有一定的参考价值。

 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之泛型的主要内容,如果未能解决你的问题,请参考以下文章

201671010128 2017-10-30《Java程序设计》之泛型程序设计

Java之泛型

java5核心基础之泛型-泛型作用于编译阶段-怎样将String对象传入Integer类型的泛型对象中?

java之泛型

十:Java之泛型

Java进阶之泛型