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);
    

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

  • 相关阅读:
    全面了解Cookie
    HTML5实现无刷新修改URL
    闭包的理解
    JS中的prototype、__proto__与constructor
    Array.prototype.slice.call()方法详解
    深入理解 Array.prototype.map()
    网页布局——Flex弹性框布局
    vue项目的各个文件作用
    node使用心得
    node连接Mysql报错ER_NOT_SUPPORTED_AUTH_MODE
  • 原文地址:https://www.cnblogs.com/john1015/p/13887478.html
Copyright © 2011-2022 走看看