1、泛型:好处:将运行时期出现问题(类型转换异常)转移到了编译时期。避免了强制转换的麻烦。
2、泛型类:当类中要操作的引用数据类型不确定时,早期定义object来完成功能扩展,但是调用具体对象时,需要强制类型转换后,才可以调用具体对象的特有方法。
现在使用泛型类来完成功能扩展,代码示例如下:
Class tool<xx x>//xx为泛型类型
{
private xx x;
public void setobject(xx x)
{
this.x=x;
}
public xx setobject(xx x)
{
return x;
}
}
3、泛型方法:泛型类的泛型对整个方法有效,一旦泛型确定类型,则整个类里的泛型类型便确定了。为了让不同方法可以操作不同类型数据。可以在方法上定义泛型,作用范围为整个方法。代码示例如下:
public <T> void show(T t)
{
System.out.print(t);
}
此方法可以打印任何类型的数据。
4、泛型静态方法:不可以访问类的泛型,因为类的泛型是在对象建立之后才确定。但泛型静态方法可以定义在静态方法上。格式:public static <T> void hanshu(){}
5、泛型限定:?通配符,泛型类型不确定时,用?占位。
上限:? extends E:可以接收E类型或E的子类型。
下限:? Super E:可以接收E类型或E的父类型。
|
|