Java泛型方法的定义问号

概述

在Java中,泛型是一种通用的编程方式,它可以在类或方法中使用,以增加代码的灵活性和可重用性。泛型方法是指在方法声明中使用泛型的方法。本文将教你如何在Java中定义泛型方法以及如何使用问号作为泛型的通配符。

泛型方法的定义

在Java中,我们可以使用泛型方法来定义一个方法,该方法可以接受不同类型的参数,并且可以返回不同类型的值。泛型方法可以在方法声明中使用泛型类型参数,并通过在方法名称前面放置尖括号来声明泛型类型参数。下面是定义泛型方法的一般形式:

public <T> void methodName(T parameter) {
    // 方法体
}

在上面的代码中,<T>表示泛型类型参数,T可以是任何标识符,表示泛型类型。methodName是泛型方法的名称,T parameter是方法的参数,其中T表示参数的类型。在方法体中,可以使用T来代表方法参数的类型。

泛型方法的使用

下面是使用泛型方法的步骤和示例代码:

步骤 代码 说明
1. 定义泛型方法 java public <T> void printArray(T[] array) { } 定义一个泛型方法printArray,接受一个泛型数组作为参数
2. 在方法体中使用泛型 java System.out.println(element); 在方法体中使用泛型类型T,输出数组中的每个元素
3. 调用泛型方法 java Integer[] intArray = {1, 2, 3, 4, 5}; printArray(intArray); 创建一个整型数组,并调用泛型方法printArray打印数组中的元素

下面是完整的示例代码:

public class GenericMethodExample {

    public static void main(String[] args) {
        Integer[] intArray = {1, 2, 3, 4, 5};
        String[] stringArray = {"Hello", "World"};

        GenericMethodExample example = new GenericMethodExample();
        example.printArray(intArray);
        example.printArray(stringArray);
    }

    public <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }
}

运行上面的代码,将输出以下结果:

1
2
3
4
5
Hello
World

使用问号作为泛型通配符

在Java中,可以使用问号(?)作为泛型的通配符,表示未知类型。问号可以用于泛型方法的参数类型、返回类型以及泛型类型参数的限定。下面是使用问号作为泛型通配符的示例代码:

步骤 代码 说明
1. 定义泛型方法 java public void printList(List<?> list) { } 定义一个泛型方法printList,接受一个未知类型的列表作为参数
2. 在方法体中使用通配符 java System.out.println(element); 在方法体中使用通配符?,输出列表中的每个元素
3. 调用泛型方法 java List<Integer> intList = Arrays.asList(1, 2, 3, 4, 5); printList(intList); 创建一个整型列表,并调用泛型方法printList打印列表中的元素

下面是完整的示例代码:

import java.util.Arrays;
import java.util.List;

public class WildcardExample {

    public static void main(String[] args) {
        List<Integer> intList = Arrays.asList(1, 2, 3, 4, 5);
        List<String> stringList = Arrays.asList("Hello", "World");

        WildcardExample example = new WildcardExample();
        example.printList(intList);
        example.printList(stringList);
    }

    public void printList(List<?> list) {
        for (Object element : list) {
            System.out.println(element);
        }
    }
}

运行上面的代码,将输出以下结果:

1
2
3
4
5
Hello
World

在上面的示例中