本期为大家分享的是 泛型的定义和使用:
泛型:可以在类或方法中预支地使用未知的类型
好处:
1. 将运行时期的ClassCastException,转移到了编译时期变成了编译失败
2. 避免了类型强转的麻烦
使用:
泛型类:
格式:修饰符 class 类名<代表泛型的变量> { }
范例:
public class MyGenericClass<MVP> {
....
}
使用:在创建对象的时候确定泛型
MyGenericClass<String> my = new MyGenericClass<String>();
泛型接口:
格式:修饰符 interface接口名<代表泛型的变量> { }
范例:
public interface MyGenericInterface<E>{ }
使用:
1. 定义类时确定泛型的类型
public class MyImp1 implements MyGenericInterface<String> { }
2. 始终不确定泛型的类型,直到创建对象时,确定泛型的类型
MyImp2<String> my = new MyImp2<String>();
泛型变量:
格式:修饰符 泛型 代表泛型的变量;
范例:
private MVP mvp;
使用:
my.mvp;
泛型方法:
格式:修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }
范例:
public <MVP> void show(MVP mvp) {
System.out.println(mvp.getClass());
}
使用:调用方法时,确定泛型的类型
my.show("aaa");
注意:
1. 一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。
2. 泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。
|
|