java泛型的泛型方法

如题所述

第1个回答  2016-05-11

是否拥有泛型方法,与其所在的类是否泛型没有关系。要定义泛型方法,只需将泛型参数列表置于返回值前。如: public class ExampleA {    public <T> void f(T x) {        System.out.println(x.getClass().getName());    }    public static void main(String[] args) {        ExampleA ea = new ExampleA();        ea.f(" ");        ea.f(10);        ea.f('a');        ea.f(ea);    }}输出结果:
java.lang.String
java.lang.Integer
java.lang.Character
ExampleA
使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。
需要注意,一个static方法,无法访问泛型类的类型参数,所以,若要static方法需要使用泛型能力,必须使其成为泛型方法。

相似回答