泛型接口怎么用,给出实际例子
时间: 2023-08-11 08:02:22 浏览: 102
C#泛型接口实例
泛型接口可以定义一个抽象接口,其中的方法可以使用泛型类型作为参数或返回值类型,从而实现更加通用和灵活的代码设计。
下面是一个具体的例子,假设我们需要定义一个用于排序的接口,其中要求实现该接口的类必须提供一个泛型类型的数组,并且能够对数组中的元素进行排序操作。这个接口可以定义为:
```java
public interface Sortable<T> {
void sort(T[] arr);
}
```
实现这个接口的类可以根据具体需要来实现排序算法,例如以下是一个实现了冒泡排序的类:
```java
public class BubbleSort<T extends Comparable<T>> implements Sortable<T> {
@Override
public void sort(T[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j].compareTo(arr[j + 1]) > 0) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
```
这里使用了泛型类型 T extends Comparable<T> 来限制了排序的元素必须是可比较的类型,从而实现了冒泡排序算法。
接下来可以使用这个泛型接口和实现类来进行排序操作,例如:
```java
Integer[] arr = {5, 2, 9, 1, 3};
Sortable<Integer> sorter = new BubbleSort<>();
sorter.sort(arr);
System.out.println(Arrays.toString(arr));
```
输出结果为:[1, 2, 3, 5, 9]
可以看到,通过使用泛型接口和实现类,我们可以实现更加通用和灵活的代码设计,从而更好地满足不同场景下的需求。
阅读全文