首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一、泛型

2013-03-14 
1、泛型?五、泛型方法?泛型类定义的泛型,在整个类中有效,如果被方法使用,那么泛型类的对象明确要操作的具体

1、泛型

?

五、泛型方法

?

    泛型类定义的泛型,在整个类中有效,如果被方法使用,那么泛型类的对象明确要操作的具体类型后,所有方法要操作的类型就已经固定了为了让不同方法可以操作不同类型,而且类型还不确定,那就可以将泛型定义在方法上
    泛型的细节:泛型到底代表什么类型取决于调用者传入的类型,如果没传,默认是Object类型;使用带泛型的类创建对象时,等式两边指定的泛型必须一致;原因:编译器检查对象调用方法时只看变量,然而程序运行期间调用方法时就要考虑对象具体类型了;等式两边可以在任意一边使用泛型,在另一边不使用(考虑向后兼容);ArrayList<String> al = new ArrayList<Object>();  //错//要保证左右两边的泛型具体类型一致就可以了,这样不容易出错。ArrayList<? extends Object> al = new ArrayList<String>();al.add("aa");  //错//因为集合具体对象中既可存储String,也可以存储Object的其他子类,所以添加具体的类型对象不合适,类型检查会出现安全问题。 //?extends Object 代表Object的子类型不确定,怎么能添加具体类型的对象呢?public static void method(ArrayList<? extends Object> al) {al.add("abc");  //错//只能对al集合中的元素调用Object类中的方法,具体子类型的方法都不能用,因为子类型不确定。

    ?

热点排行