Java教程 - 如何使用Java泛型接口
在Java中,我们创建泛型接口。
语法
这是一个泛型接口的泛型语法:
interface interface-name<type-param-list> { // ...
type-param-list是逗号分隔的类型参数列表。当实现泛型接口时,必须指定类型参数,如下所示:
class class-name<type-param-list> implements interface-name<type-arg-list> {
注意
一般来说,如果一个类实现了一个泛型接口,那么该类也必须是泛型的。如果一个类实现了一个特定类型的泛型接口,如下所示:
class MyClass implements MinMax<Integer> { // OK
那么实现类不需要是泛型的。
泛型接口类似泛型类。
例子
interface MinMax<T extends Comparable<T>> { T max(); } class MyClass<T extends Comparable<T>> implements MinMax<T> { T[] vals; MyClass(T[] o) { vals = o; } public T max() { T v = vals[0]; for (int i = 1; i < vals.length; i++) { if (vals[i].compareTo(v) > 0) { v = vals[i]; } } return v; } } public class Main { public static void main(String args[]) { Integer inums[] = { 3, 6, 2, 8, 6 }; Character chs[] = { "b", "r", "p", "w" }; MyClass<Integer> a = new MyClass<Integer>(inums); MyClass<Character> b = new MyClass<Character>(chs); System.out.println(a.max()); System.out.println(b.max()); } }
上面的代码生成以下结果。