zoukankan      html  css  js  c++  java
  • JAVA泛型类

    泛型是JDK 5.0后出现新概念,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

    泛型类引入的好处不仅在于减少代码量,还在于一提供了编译时期数据类型的检查功能,可以提前预知错误的发生,增加代码安全性,二是减少了强制类型转换。下面定义一个泛型类

     Example GenericFX.java

     package org;

     public class GenericFX<E>

    {

         private E fx;

        

         public void setFX(E fx)

        {

             this.fx = fx;

        }

     

         public E getFX()

         {

             return fx;

         }

    }

    在此例中,GenericFX类就是要定义的泛型类,类型变量E是泛型类的类型参数,我们可以使用GenericFX<E>这样的类型名来声明一个泛型类。如

    GenericFX<E>  fx  = new GenericFX<E>(),其中E就是具体的类型, 下面看一个应用泛型类的例子.

     Example GenericFXDemo.java

     package org;

     public class GenericFXDemo

    {

         public void main(String[] args)

         {

             GenericFX<Integer>  f1 = new GenericFX<Integer>(); 

             GenericFX<Boolean>  f2 = new GenericFX<Boolean>();      

            

             f1.setFX(new Integer(10));

             System.out.println(f1.getFX());//

           

             f2.setFX(new Boolean(true));

             System.out.println(f2.getFX());//

         }

    }

    可以看到,f1,f2都是同一泛型类的对象引用,在取得不同参数类型对象时,已不需要实行类型转换.

    如果像这样修改一下代码,放进去Integer,取出来Boolean是不允许这样的!!!

    f1.setFX(new Integer(10));

    Boolean  b = f1.getFX();

    System.out.println(b);   这里编译就会报错,告诉你这不安全.

    泛型类可以定义多个类型参数,像GenericFX<E,F>就要两个类型参数。但是,无论有多少个类型参数,泛型仍然只需要一个类。如上GenericFX<Integer> GenericFX<Boolean>都属于同一个泛型类GenericFX,f1,f2都只是该泛型类的一个应用,当然单一的GenericFX类是不能称为泛型类的,必须要有<>和类型参数才可以,而像fx只是泛型类的成员变量。

  • 相关阅读:
    世界视频编码器大赛结果揭晓,腾讯V265编码器勇夺两项第一
    IDEA实用教程(六)—— 全局设置的两种方式
    IDEA实用教程(五)——配置IDEA的JVM内存值
    IDEA实用教程(四)—— 创建JavaSE工程
    IDEA实用教程(三)
    IDEA实用教程(二)
    emlog博客的安装教程
    IDEA实用教程(一)
    阿里云轻量应用服务器快照的使用及注意事项
    mysql5.5安装教程
  • 原文地址:https://www.cnblogs.com/baoendemao/p/3804798.html
Copyright © 2011-2022 走看看