27、java泛型

内容纲要

file
@[toc]

27、java泛型

概念

  • 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型

泛型方法

简单定义

  • public class Test\{}

简单实例化

  • Test\ t = new Test\();

    规则

    • 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。
    • 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
    • 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
    • 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。

    泛型类

    • 泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开
    • 一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符
    • 因为他们接受一个或多个参数,这些类被称为参数化的类或参数化的类型

    示例

    public class Box<T> {
      private T t;
      public void add(T t) {
        this.t = t;
      }
      public T get() {
        return t;
      }
    }

    类型通配符

    • 类型通配符一般是使用?代替具体的类型参数
    • List<?>在逻辑上是List\>,List\ 等所有List<具体类型实参>的父类

    类型通配符上限

    • List<? extends Number>如此定义就是通配符泛型值接受Number及其下层子类类型

    类型通配符下限

    • List<? super Number>表示类型只能接受Number及其三层父类类型

    留下评论

    您的电子邮箱地址不会被公开。