欢迎来到天天文库
浏览记录
ID:38061830
大小:40.00 KB
页数:3页
时间:2019-05-25
《泛型程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、泛型程序设计1.所谓泛型就是将类型也作为一种参数,来进行指定(类型参数指定的类型中不包括基本类型)。2.没有使用泛型时,存在的问题:(1)声明创建列表时,就不能告诉系统,列表中将要存放何种类型的对象。(2)每次从列表中取出对象时,都必须引用进行强制类型转换,因为没有使用泛型的列表将任何对象都作为java.lang.Object类型返回。3范型类:把类型作为参数,让类定义对象时确定范型类型。4.泛型类或接口的声明:(1)语法:publicclass类名<类型变量>{类体}注:类型变量一定放在类型的后面。(2)示例:packageee;class
2、MyValue{privateTvalue1;privateUvalue2;publicTgetValue1(){returnvalue1;}publicvoidsetValue(Tvalue1,Uvalue2){this.value1=value1;this.value2=value2;}publicUgetValue2(){returnvalue2;}}publicclassTest{publicstaticvoidmain(String[]args){MyValuemv1=newMyValue<
3、String,Integer>();mv1.setValue("我是孙利军",8888);System.out.println("第一个元素为:"+mv1.getValue1()+""+"第二个元素为:"+mv1.getValue2());MyValuemv2=newMyValue();mv2.setValue(8888,"我是孙利军");System.out.println("第一个元素为:"+mv2.getValue1()+""+"第二个元素为:"+mv2.getVa
4、lue2());}}5.泛型方法的开发:(1)语法:publicstatic<类型变量>返回类型方法名(参数列表{方法体})(2)泛型方法既可以在不同类中定义,也可以在泛型类中定义。泛型类与泛型方法的区别:泛型方法的类型参数声明要放在方法返回类型声明之前,而泛型类则必须放在类声明之后。(3)示例:packageee;publicclassTest{//定义泛型方法publicstaticTgetLast(T[]a){returna[a.length-1];}publicstaticvoidmain(String[]args){Strin
5、g[]str={"这是第一个元素","这是第二个元素","这是第三个元素"};Stringsrc=getLast(str);System.out.println("最后一个元素为:"+src);}}(4)调用泛型方法时,可以明确给出泛型参数的类型,也可以不明确给出,此时系统自动调用。6.类型变量的限制(1)如果希望类型变量的类型有一定的范围,而不是任何类型都可以,则需要借助于:类型变量extends限定类型序列。限定类型序列中可以有多个类型,这些类型可以是类,也可以是接口,多个类型之间用”&”分割(注意:限定类型序列中只能有一个类,可以有多个
6、接口,如果限定类型中有类,则必须把类放在第一个)7.泛型通配符的使用:(1)泛型参数的继承与普通类的继承不同,如果A是B的子类,则G并不可以看做G,如果想要实现这样的效果,则必须借助于通配符”?”.(2)示例:packageee;importjava.util.ArrayList;publicclassTest{publicstaticvoidprintMyValue(ArrayList>mv){System.out.println("该列表中的值为:"+mv);}publicstaticvoidmain(String[]ar
7、gs){ArrayListas=newArrayList();for(inti=0;i<10;i++){as.add(i+"");}printMyValue(as);}}注:ArrayList>表示可以接受ArrayList<任意具体类型>的参数,如但如果反过来,将>传给就不行了。(3)泛型通配符使用时的注意事项:①泛型通配符只能用于引用的声明中,不可以在创建对象时使用。②不可以使用采用了泛型通配符的引用调用使用了泛型参数的方法。8.有限制的通配符:(1)格式:?exte
8、nds类名或接口名;表示泛型通配符能够匹配的类型必须是指定类及其子类,或为指定接口或其子接口。9.注意:1-范型类所生成的对象的规定范型不同,则不能相互传引用Obj
此文档下载收益归作者所有