(该文为廖雪峰java学习笔记)
编写泛型类时,要特别注意,泛型类型不能用于静态方法。
public class Pair<T> {
private T first;
private T last;
public Pair(T first, T last) {
this.first = first;
this.last = last;
}
public T getFirst() {
... }
public T getLast() {
... }
// 对静态方法使用<T>:
public static Pair<T> create(T first, T last) {
return new Pair<T>(first, last);
}
}
上述代码会导致编译错误,我们无法在静态方法create()的方法参数和返回类型上使用泛型类型T。对于上面的create()静态方法,我们应该把它改为另一种泛型类型,这样才能清楚地将静态方法的泛型类型和实例类型的泛型类型区分开。
public class Pair<T> {
private T first;
private T last;
public Pair(T first, T last) {
this.first = first;
this.last = last;
}
public T getFirst() {
... }
public T getLast() {
..