• 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 }

    运行结果如下:

  • 相关阅读:
    好文转贴(1) —— 程序员已死 & 程序员平庸or伟大,证据就在代码里&一些鲜为人知的编程事实
    django的两个学习资料
    django的两个学习资料
    POJ2418(BST)
    全局变量、函数原型和Guard macro
    POJ2754(八皇后)
    VC中Windows常用控件的创建和使用
    POJ1088(DP,DFS)
    超前引用
    POJ2715(Water)
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4855745.html
Copyright © 2020-2023  润新知