泛型方法参数中的 T 型参数
假设定义了以下类:
class Shape { }
class Circle extends Shape { }
class Rectangle extends Shape { } // 1
您可以编写一个泛型方法来绘制不同的形状:
public static <T extends Shape> void draw(T shape) { } // 2
Java 编译器将 T 替换为 Shape:
public static void draw(Shape shape) { } // 3
我的问题是,如果我们在类中直接定义 // 3,那么我们仍然能够传递 ,并引用 //3 中的方法。那么为什么我们需要用类型参数编写 // 2 泛型方法,而该方法将与 //3 完全相同?Shape
Circle
Rectangle
<T extends Shape>
您可以使用相同的示例引用此链接:http://docs.oracle.com/javase/tutorial/java/generics/genMethods.html