你这个问题有两点,一是泛型方法,二是静态泛型方法。
1. 定义泛型方法(在方法的返回值前面加“<T>”) /** * 泛型类定义的泛型在整个类中有效,为了让不同方法可以操作不同类型,而且类型不确定,所以可以将泛型定义在方法上。 * 泛型定义在类上和泛型定义在方法上不冲突。 */ public class GenericDemo { public static void main(String[] args) { Demo<String> d = new Demo<String>(); d.show("String类型对象"); d.show(4); } } class Demo<T>{ private T t; public void setObject(T t){ this.t = t; } //该方法定义了泛型,虽然该方法定义的泛型也为“T”,但是该方法要操作的引用数据类型与整个类要操作的引用数据类型不同。 public <T> void show(T t){ System.out.println(t); } } 2. 定义静态泛型方法 /** * 静态方法不可以访问类上定义的泛型。 * 如果静态方法要操作的应用数据类型不确定,可以将泛型定义在方法上。 */ public class GenericDemo { public static void main(String[] args) { Demo<String> d = new Demo<String>(); } } class Demo<T>{ //静态方法使用了类上定义的泛型,编译不通过。 public static void method(T t){ System.out.println(t); } public static <T> void methodB(T t){ System.out.println(t); } } |