泛型有点抽象,但是很有用。
java泛型的两种用法:List是泛型方法,List<?>是限制通配符
““和”<?>",首先要区分开两种不同的场景:
第一,声明一个泛型类或泛型方法。
第二,使用泛型类或泛型方法。
类型参数“”主要用于第一种,声明泛型类或泛型方法。
无界通配符“<?>”主要用于第二种,使用泛型类或泛型方法
?(问号类型)的泛型如何接收
乍一看有点懵,因为拿常规类型接收编译就会报错。
那么是不能接收吗? 是可以接收的。用Object即可,因为所有对象的父类都是Object。
类的泛型可以用在静态方法吗?
例如:
public class Demo<T>{
public void method1(List<T> list){
}
// 注:这个编译会报错
public static void method2(List<T> list){
}
}
为什么静态类直接使用泛型会报错呢?
是因为这里用的是类的泛型,但是静态方法在构造之前就可以调用,那时候还没传T进来,所以找不到。
解决方案:静态方法上直接定义泛型。