1.泛型允许编译器进行编译时检查,但是在运行时不再对类型有约束
以List<String> list为例,在运行时list中装的是object对象
2.泛型的格式
泛型类 -> public class MyType<T> {
public void a(T t){}
}
泛型方法 -> public class MyType {
public <T> void a(T t){}
}
3.其中T成为形式类型参数,形式类型参数可以用任何合法字符表示,如A, B, C, uio, t4r等。
4.在定义方法时使用泛型的目的是:规定方法参数之间的关系;约束方法返回值类型
class C{
public <T, S extends T> void c1(T t, S s){}
public <T, S extends T> T c2(T t, S s){return t;}
public void c3(List<?> a){}
}
如果只是为了实现多态,可以使用通配符解决(?)。