黑马程序员技术交流社区

标题: 泛型的用法 [打印本页]

作者: 聪明一只哈    时间: 2016-5-22 22:11
标题: 泛型的用法
泛型类的概述及使用
                        概述:把泛型定义在类上
                        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的父类型






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2