不是泛型类怎么定义泛型方法
时间: 2023-07-08 10:30:57 浏览: 126
在 Java 中,我们也可以定义泛型方法,即定义一个类型参数在方法级别上而不是类级别上。
定义一个泛型方法的格式如下:
```
修饰符 <类型参数> 返回类型 方法名(参数列表) {
// 方法体
}
```
其中,类型参数使用尖括号(<>)括起来,可以指定多个类型参数,用逗号分隔。
下面是一个例子:
```
public class MyUtils {
// 泛型方法
public static <T> T getMax(T[] array) {
T max = array[0];
for (T item : array) {
if (item.compareTo(max) > 0) {
max = item;
}
}
return max;
}
}
```
在上面的代码中,我们定义了一个名为 getMax 的泛型方法,类型参数为 T。该方法接受一个 T 类型的数组作为参数,返回一个 T 类型的值。在方法体中,我们使用了 compareTo 方法来比较 T 类型的元素大小,从而找到最大值。
使用时,我们可以传入具体的类型来调用该方法:
```
Integer[] intArray = {1, 2, 3, 4, 5};
Integer maxInt = MyUtils.getMax(intArray);
String[] strArray = {"apple", "banana", "orange"};
String maxStr = MyUtils.getMax(strArray);
```
在上面的代码中,我们分别传入了 Integer 类型和 String 类型的数组来调用 getMax 方法,从而找到了最大值。
需要注意的是,当我们定义泛型方法时,类型参数的作用域仅限于该方法内部。如果我们需要在类中多个方法中使用相同的类型参数,可以在类级别上定义一个类型参数。
阅读全文