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

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

  • 相关阅读:
    POJ3320 Jessica's Reading Problem
    POJ3320 Jessica's Reading Problem
    CodeForces 813B The Golden Age
    CodeForces 813B The Golden Age
    An impassioned circulation of affection CodeForces
    An impassioned circulation of affection CodeForces
    Codeforces Round #444 (Div. 2) B. Cubes for Masha
    2013=7=21 进制转换
    2013=7=15
    2013=7=14
  • 原文地址:https://www.cnblogs.com/john1015/p/13887478.html
Copyright © 2011-2022 走看看