泛型方法和成员方法
public class Test<T> {//定义一个泛型类
//普通成员方法
public T test01(T t){
return t;
}
//泛型方法
public<E> E test02(E e){
return e;
}
}
调用
public static void main(String[] args) {
//String类型
Test<String> stringTest = new Test<>();
//调用普通方法,参数类型必须是String
stringTest.test01("hello,world").getClass().getSimpleName();
//调用泛型方法,类型由所给参数确定,而不一定是String
stringTest.test02(18);
}
另外,如果把泛型方法的类型与类的类型保持一致时
public class Test<T> {//定义一个泛型类
//普通成员方法
public T test01(T t){
return t;
}
//泛型方法
public<T> T test02(T t){
return t;
}
}
这时泛型方法的类型也不会由类的类型强制约束
而成员方法则会受到类的类型约束只能是String,可见泛型方法和类之间是独立的。
除此之外,当类是泛型类时,其成员方法不可以是静态的,而泛型方法可以是静态的,进一步说明了泛型方法与类的独立性。