Java基础知识强化之集合框架笔记31:集合之泛型类的概述和基本使用

1. 为什么会有泛型呢?

(1)早期的Object类型可以接收任意的对象类型,但是在实际使用中,会有类型转换的问题,也存在这隐患,所以Java提供了泛型来解决这个安全问题

2. 泛型类的使用:

(1)首先定义一个泛型类ObjectTool,如下:

 1 package cn.itcast_04;
 2 
 3 /*
 4  * 泛型类:把泛型定义在类上
 5  */
 6 public class ObjectTool<T> {
 7     private T obj;
 8 
 9     public T getObj() {
10         return obj;
11     }
12 
13     public void setObj(T obj) {
14         this.obj = obj;
15     }
16 }

(2)编写一个泛型类的测试:

 1 package cn.itcast_04;
 2 
 3 /*
 4  * 泛型类的测试
 5  */
 6 public class ObjectToolDemo {
 7     public static void main(String[] args) {
 8         // ObjectTool ot = new ObjectTool();
 9         //
10         // ot.setObj(new String("风清扬"));
11         // String s = (String) ot.getObj();
12         // System.out.println("姓名是:" + s);
13         //
14         // ot.setObj(new Integer(30));
15         // Integer i = (Integer) ot.getObj();
16         // System.out.println("年龄是:" + i);
17 
18         // ot.setObj(new String("林青霞"));
19         // // ClassCastException
20         // Integer ii = (Integer) ot.getObj();
21         // System.out.println("姓名是:" + ii);
22 
23         System.out.println("-------------");
24 
25         ObjectTool<String> ot = new ObjectTool<String>();
26         // ot.setObj(new Integer(27)); //这个时候编译期间就过不去
27         ot.setObj(new String("林青霞"));
28         String s = ot.getObj();
29         System.out.println("姓名是:" + s);
30 
31         ObjectTool<Integer> ot2 = new ObjectTool<Integer>();
32         // ot2.setObj(new String("风清扬"));//这个时候编译期间就过不去
33         ot2.setObj(new Integer(27));
34         Integer i = ot2.getObj();
35         System.out.println("年龄是:" + i);
36     }
37 }

运行结果如下:

原文地址:https://www.cnblogs.com/hebao0514/p/4855745.html