泛型内容总结

认识泛型

泛型指的是,在定义类,接口和方法时,同时声明了一个或多个变量,如:,称为泛型类,泛型接口,泛型方法。泛型是JDK1.5新增的特性,是一种在编译时期进行类型检查和类型推断的特性。

泛型定义

将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。泛型的本质就是参数化类型。

泛型的定义格式

类型  对象   =   new  类型();

语法解析:

<>是泛型的特征

E表示某种数据类型,也可以用其他字母表示,在实际使用泛型时,需要用明确的类型替换E

当 别 人 使 用 ArrayList 集 合 创 建 对 象 时 , new ArrayList 就 表 示 元 素 为 String 类 型 , new ArrayList 表示元素为Integer类型。

泛型的作用、本质

作用:在编译阶段避免出现一些非法的数据。

本质:把具体的数据类型传递给类型变量。

好处:简化代码:泛型可以简化代码,避免了使⽤ Object 类型进⾏强制类型转换的繁琐和不安全的操作。

泛型的使用

public class Demo {
public static void main(String[] args) {
     ArrayList stringList = new ArrayList<>();
     stringList.add("123");
     String str = stringList.get(0);
   }
}

泛型类、泛型接口、泛型方法

泛型类

public class Demo {
    private T name;
    public T test01(T name) {
    return name;
  }
}

泛型接口

// 这里的TypeList表示的类型参数列表,可以是一个,也可以是多个,多个以逗号隔开。一般是一个大写的
字母,比如E
public interface 接口名{


  }

泛型方法

public <泛型变量, 泛型变量> 返回值类型 方法名(形参列表){

 }

泛型内容总结_第1张图片定义泛型方法与方法所在的类或者接口是不是泛型类或者泛型接口没有直接的关系,也就是说无论是泛型类还是非 泛型类,只要需要就可以定义泛型方法。

泛型限定

就是对泛型的数据类型进行范围的限制,如三种格式:

:表示任意类型。

:表示是指定数据类型或者它的子类。

:表示是指定数据类型或者它的父类。

// ? 代表 Generic 泛型类型是任意类型
public void test01(Generic g) {
}
// 与泛型方法功能类似
public  void test04(Generic g) {
}
// ? 代表 Generic 泛型类型可以是 Super及子类
public void test(Generic g) {
}
// ? 代表Generic 泛型类型可以是 Sub及所有父类
public void test03(Generic g) {
}

泛型擦除

泛型只是在编译阶段有效,编译成字节码文件之后就不存在泛型了,这就是泛型擦除。

泛型只支持引用数据类型,不支持基本数据类型。

你可能感兴趣的:(java,开发语言)