看了上一篇《Java泛型之一》,再来学习泛型方法就容易了。
代码如下:
package generic;
/**
* 泛型方法测试
*
* @author caiyu
*
*/
public class GenMethod {
public static <T> void display(T t) {
System.out.println(t.getClass());
}
}
首先,泛型的声明,必须在方法的修饰符(public,static,final,abstract等)之后,返回值声明之前。
然后,和泛型类一样,可以声明多个泛型,用逗号隔开。
先看看效果,调用display
/**
* 泛型方法测试
*/
GenMethod.display(123);
GenMethod.display("");
GenMethod.display(123f);
这里所举的例子以及所得出的结果,正是我所困惑的,我的问题是既然关于T的信息在运行时被擦除,那么为什么t.getClass()方法可以返回class java.lang.Integer等类型,而不是返回Object类型呢?
结果为:
class java.lang.Integer
class java.lang.String
class java.lang.Float
联系客服