三种情况
1.方法泛型需与类泛型一致(推荐)
public class Tool<Q> {
//...
public void show(Q q) {
System.out.println(q);
}
}
2.方法也可以拥有自己的泛型
package com.albert.bean;
public class Tool<Q> {
//...
public<T> void show(T t) {
System.out.println(t);
}
}
//...
package com.albert.bean;
public static void main(String[] args) {
String str = "abc";
Tool<String> ts = new Tool();
ts.show(str);
}
打印结果为:
abc
3.静态方法必须有自己的泛型
因为静态方法随着类的加载而加载,在加载类的时候很可能还未创建对象(可以直接用类名调用而不需实例化),故不能等到实例化时再对泛型赋以具体引用类型。
package com.albert.bean;
public class Tool<Q> {
...
public static<T> void print(T t) {
System.out.println(t);
}
}
//...
package com.albert.bean;
public static void main(String[] args) {
String str = "abc";
Tool.print(str);
}
打印结果为:
abc