zoukankan      html  css  js  c++  java
  • 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 }

    运行结果如下:

  • 相关阅读:
    《三体》推荐
    低调做人,高调做事
    注意力的培养是学校教学的真正目的
    【RTP.NET入门系列 一】接收第一个RTP包。
    MapX开发日记(三)GPS项目终于有了眉头
    【RTP.NET入门系列 二】接收第一个RTP帧。
    10.04 flash 乱码 问题
    10.04 中文输入发问题。
    通过值类型进行Timer类的线程的同步。
    关于ManualResetEvent信号机制。
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4855745.html
Copyright © 2011-2022 走看看