zoukankan      html  css  js  c++  java
  • 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);
    

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

  • 相关阅读:
    css js 解除网页无法选择进而复制的限制,bd文库无法复制
    Git命令简记
    DDD基本概念-未完成
    多线程隙-IO模型(BIO、NIO、AIO)
    RabbitMQ笔记-保证消息队列高可用
    关于fiddler手机抓包
    spring控制反转是谁在何时何地反转给谁?依赖注入??
    Cookie、Session、Token的区别
    详解Redis中两种持久化机制RDB和AOF
    Java中线程池的抛出策略、阻塞队列、内存溢出
  • 原文地址:https://www.cnblogs.com/john1015/p/13887478.html
Copyright © 2011-2022 走看看