• JavaSE 泛型


    1. 泛型定义

    Java 语言允许在类或接口的定义中,用一个占位符替代实际的类类型。这个技术称为泛型(generic)。通过使用泛型,可以定义一个类,其对象的数据类型由类的使用者在以后确定。

    通过使用泛型技术,定义时,不需要指明具体的数据类型,而是使用泛型数据类型替代实际的数据类型,从而定义一个泛型类(generic class)。当使用这个类创建实例时,再根据实际情况选择具体的数据类型。

    为了在定义接口或类时建立泛型,可以在定义首行的接口名或类名的后面,写一个 。标识符 T 可以是任何标识符。

    2. 泛型接口

    • 接口类如下:
    public interface Pairable<T>
    {
        public T getFirst();
        public T getSecond();
    }
    

    为实现这个接口类,则开头写为:

    public class OrderedPair<T> implements Pairable<T>
    

    3. 泛型类

    在泛型类中,继承了接口后,对于私有域中的数据类型、构造方法的两个参数的数据类型、方法 getFirst 和 getSecond 的返回类型,均为 泛型T。

    T 可以是数据与、方法参数及局部变量的数据类型,也可以是方法的返回类型。

    例如,创建 String 对象的实例,可以写如下语句:

    OrderedPair<String> fruit = new OrderedPair<>("apple","banana");
    

    现在,OrderedPair 定义中作为数据类型出现的 T ,都将使用 String 替代。

    4. 泛型方法

    假定有一个类,在它的头部没有定义类型参数,但在这个类的方法中需要使用泛型数据类型。编写泛型方法(generic method)的步骤如下:

    • 在尖括号中写上类型参数,放在方法头部返回类型的前面。
    • 在方法内使用类型参数,如同在一般类中的使用,即,或作为返回类型、方法参数的数据类型,或作为方法体内变量的数据类型。

    具体写法如下:

    // 泛型方法
    public static <T> void displayArray(T[] anArray) {...}
    
    // 方法实现
    String[] stringArray = {"apple","banana"};
    displayArray(stringArray);
    

    在泛型方法中的参数也是泛型,因此在实现泛型方法时直接使用定义好的参数即可。

  • 相关阅读:
    Wireshark抓包工具使用教程以及常用抓包规则
    linux自带抓包工具tcpdump使用说明
    利用mmap /dev/mem 读写Linux内存
    使用mii-tool设置网卡速率
    LINUX命令之ETHTOOL用法详解
    ethtool 在 Linux 中的实现框架和应用
    IDEA 上传更新的代码到码云上
    如何选择开源许可证
    IDEA 安装完码云插件,运行报“Cannot run program "xxx":CreateProcess error=2,系统找不到指定的文件”
    beans.factory.BeanCreationException beans.factory.annotation.Autowired(required=true)
  • 原文地址:https://www.cnblogs.com/john1015/p/13887478.html
Copyright © 2020-2023  润新知