强制规定类型,一般用于集合,因为集合使用Object承装元素,不强制规定类型,那么会在编译期找不到错误,而在运行时报错
public void test(){
List list = new ArrayList();
list.add("123");
list.add(123);
for(Object str:list){
System.out.println((String)str);
}
}
泛型的作用仅是在编译期方便检查,在运行期会擦除类型,也就是依旧是Object类型
标记此类或此方法存在泛型应用,这个
如
public class a满足更多需求的泛型{ T data; } public class b{ public T getNum(T Object){ } }
public class a{
int n;
public void test(){
List> list1 = new ArrayList>();
List extends a> list2 = new ArrayList>();
List super a> list3 = new ArrayList>();
}
}
>这种意义不大,一般用途是加上extends和super,因为它和没加泛型一样是通配
extends a> 这说明该集合元素必须是a及其子类
super a>这说明该集合元素必须是a及其父类
由此可见,它的好处是,比单一声明如List
范围大一些
>常被调用方使用,来声明被调用方的类型。而在被调用方的泛型上,我们更常用的是



