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
在上面的示例中