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

    Java泛型

    解耦类或方法与类型之间的约束。

    泛型出现的一个原因:容器类

     

    泛型类

    只能持有单个对象的类

    如何持有别的类型的对象?使用object

    通常来说,我们只持有一种类型的对象,泛型的目的是指定持有哪种对象。

    泛型接口

    Public interface Generator<T>{ T next(); }

    Public class CoffeGenerator implements Generator<Coffee>{ public Coffee next();}

    泛型方法

    泛型方法可独立于类,尽量使用泛型方法。(Public <T> void f(T x));对于static方法,若需要使用泛型能力,就必须使其成为泛型方法,因为static发发无法访问泛型类的类型参数。

    (public static <K,V> Map<K,V> map(){})

    在使用泛型类时,在创建对象时必须指定类型参数,而调用方法时,无需指定,编译器会做类型参数判断,相当于重载。

    调用泛型方法后,其返回值会被赋给一个Object类型的变量。

    可变参数与泛型方法

    public static <T> List<T> makeList(T… args){}

     

    匿名内部类

    class Teller{
        public static Generator<Teller> generator(){
            return new Generator<Teller>(){
                public Teller next(){
                    return new Teller();
                }
            };
        }
    }

     

    泛型的擦除

    class c1 = new ArrayList<String>().getClass();
    class c2 = new ArrayList<Integer>().getClass();
    return (c1==c2)//True

    在泛型代码内部,无法获得任何有关泛型参数类型的信息。使用边界信息(extends)

    擦除的补偿

    显示地传递class对象

    局限性

    基本类型无法作为类型参数。(不过Java SE5具备自动拆包、装包功能)

     

  • 相关阅读:
    四则运算网页版
    第十周学习进度
    第九周学习进度
    针对石家庄铁道大学官网首页的UI分析
    站立会议10
    站立会议9
    站立会议8
    评价:百度搜索
    LogCat里的错误提示 FATAL EXCEPTION: main
    站立会议7
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/12120412.html
Copyright © 2011-2022 走看看