泛型

这是我在总结以前所学的java基础知识时所进行的汇总。大家看看有什么不对的地方,请各位大神指教!!!

一、泛型示例:

       class 类名称<T>{}

       interface 接口<T>{ }

       public <T> void 方法 (T one){ }

       注意:1.标识符T表示形式上的类型,使用时传入实参

                 2. 在类体内可以根据需要将T作为成员类型,包括返回值类型

       作用:解决类型转换异常问题、提高代码重用性

二、泛型定义

       泛型:通过参数化类型提高代码重用性,并在编译期强制进行类型检查的机制。

       泛型包括:泛型类、泛型接口、泛型方法

三、泛型类,泛型接口

     子类继承泛型类:

                           注意事项:若父类声明了类型形参T,则子类的类型形参列表中也必须含有T

                                             省略类型实参时,默认为Object类型

四、泛型方法,泛型规则

       泛型方法可用于:提高代码重用性,静态方法传入泛型参数(必须使用泛型方法)

      泛型规则:

      1.类型实参只能是引用数据类型,不能是基本数据类型。

      2.同一种泛型可以有多个版本,不同版本需考虑兼容性。

      3.泛型参数可以有多个,以英文逗号割开。

      4.类型实参可以使用?通配符。

      5.泛型可以使用extends、super限定边界。

五、通配符

      通配符是代替一个或多个真正字符的特殊字符

      外延:shell通配符、正则表达式通配符、sql通配符、泛型通配符

      泛型通配符:用来表示任意类型实参的通配符

      外延:无边界通配符、固定上边界通配符、固定下边界通配符

      ?:无边界通配符,默认匹配Object类,即可以匹配任意引用类型的对象

      <? extends 上界类>:使用extends向上限定边界,类型可以是上界类自身或其子类。

      <? super 下界类>:使用super向下限定边界, 类型实参可以是下界类自身或其超类(父类)。

       常用的通配符:

       

      注意:泛型类型形参可以限定上边界,不能限定下边界,否则会报语法错误

符号?和T在泛型使用中有什么区别呢?
  应用场景 范围限定

一种通配符, 在泛型中传入类型实参时使用

无边界 固定上边界 固定下边界

T

一种表示泛型参数的标识符, 在定义泛型类、泛型接口、泛型方法时作为类型形参

无边界 固定上边界

   泛型的生效期:

 

posted @ 2020-01-28 21:27  Nieo  阅读(219)  评论(0)    收藏  举报