A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 聪明一只哈 中级黑马   /  2016-5-22 22:11  /  349 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

泛型类的概述及使用
                        概述:把泛型定义在类上
                        class Student<T,Q> {                //可以有多个类型变量,该类型变量可以在类内使用
                                                                                                        //在创建类的对象时传递实际类型参数
                                private T t;
                                private Q q;
                                public void setT(T t) {
                                        this.t = t;
                                }
                                public void setQ(Q q) {
                                        this.q = q;
                                }
                        }
在方法上使用泛型
                //可以在方法上单独定义泛型
                '泛型位置在修饰符后面返回值前面'
                非静态方法:
                        public<W> void show(W w)
                        //<>对类型变量的声明,声明一个类型变量W
                        //既可以使用类上的类型变量又可以使用方法上自定义类型变量
                静态方法:
                public static<S> void print(S s)
                 只能在其上定义泛型,不能使用类上的泛型
                 因为类上的类型变量在创建对象时被赋值
                         而静态方法随着类的加载而加载,此时还没有对象
在接口上使用泛型
                public interface Inter<I>
                两种实现方式:
                        class Impl implements Inter<String>
                        a.直接在接口上定义类型变量(推荐)
                        在实现类上传递实际类型参数
                        class Impl<I> implements Inter<I>
                        b.类上和实现类上都定义相同的类型变量
                        然后再new对象的时候传递实际类型参数
                6.泛型高级之通配符
                        a.        ?  <?>  当实际参数类型不确定时
                        b. ? extends E : ?是E类型或E的子类型
                        c. ? super E :     ?是E类型或E的父类型

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马