泛型也可以用于接口
举个例子:例如生成器,专门创建对象的类。创建对象是不需要任何参数。
一般的生成器只需要一个方法,该方法生成新的对象。在这个举例中就是next()方法。
public interface Generator<T> { T next(); }
next返回的类型是参数化的T。我们可以看到接口使用泛型和类使用泛型没有任何区别。
Generator<T>应用的例子:
public class Fibonacci implements Generator<Integer> {
private int count = 0;
public Integer next() {
return fib(count++);
}
private int fib(int n) {
if (n < 2)
return 1;
return fib(n - 2) + fib(n - 1);
}
public static void main(String[] args) {
Fibonacci gen = new Fibonacci();
for (int i = 0; i < 18; i++)
System.out.print(gen.next() + " ");
}
}
/*
* Output: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584
*/// :~