泛型方法与可变参数

22 阅读1分钟

在泛型方法中,泛型也可以定义可变参数类型。可变参数(T...args)允许方法接触任意数量的同类型参数,两者结合时,可变参数类型可由泛型方法的类型参数指定,编译器会自动保证传入的参数类型和泛型类型一致。

public <T> 返回值类型 方法名(T...可变参数名) {}

基础用法:

package com.generic.test.it;

public class TestMethodGeneric {
    // 泛型方法 + 可变参数:接收任意数量的T类型参数
    public static <T> void printAll(T...items) {
        for (T t: items) { // 可变参数在方法内部以数组形式存在
            System.out.println(t);
        }
    }

    public static void main(String[] args) {
        printAll("苹果", "香蕉"); // 传入多个String类型参数(自动推断T为String)
        printAll(1,2,3); // 传入多个Integer类型参数(自动推断T为Integer)
    }
}