泛型的好处:
1. 让运行时出现的问题转移到编译时,方便程序员解决问题。让运行问题减少,安全。
2. 避免了强制转换
定义在类中
Class Person<T>
{
}
定义在方法上:
private <T>void sop(T t) //<T> 在void 前面{}
privatestatic <T> void sop(T t){} //静态方法泛型必须定义在方法上。
定义在接口上:
Interface Inter<T>
{void show(Tt);}
类的实现方式:
class InterImplimplements Inter<String>
{
public void show(String t){}
}
class InterImpl<T>implements Inter<T>
{
public void show(T t){}
}
泛型的限定:
上限:?extends E:可以接受E类型或者E的子类型。
下限:?super E:可以接受E类型或者E的父类型。