Java泛型(generics)解析实例.docx

Java泛型(generics)解析实例.docx

ID:51690439

大小:56.82 KB

页数:8页

时间:2020-03-15

Java泛型(generics)解析实例.docx_第1页
Java泛型(generics)解析实例.docx_第2页
Java泛型(generics)解析实例.docx_第3页
Java泛型(generics)解析实例.docx_第4页
Java泛型(generics)解析实例.docx_第5页
资源描述:

《Java泛型(generics)解析实例.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java泛型(generics)解析实例Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。假定我们有这样一个需求:写一个排序方法,能够对整形数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?答案是可以使用Java泛型。使用Java泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。一

2、、泛型方法你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。下面是定义泛型方法的规则:所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。泛型方法体的声明和其他方法一

3、样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。1、实例一下面的例子演示了如何使用泛型方法打印不同字符串的元素:publicclassGenericMethodTest{//泛型方法printArraypublicstaticvoidprintArray(E[]inputArray){//输出数组元素for(Eelement:inputArray){System.out.printf("%s",element);}System.out.println();}publ

4、icstaticvoidmain(Stringargs[]){//创建不同类型数组:Integer,Double和CharacterInteger[]intArray={1,2,3,4,5};Double[]doubleArray={1.1,2.2,3.3,4.4};Character[]charArray={‘H‘,‘E‘,‘L‘,‘L‘,‘O‘};System.out.println("整型数组元素为:");printArray(intArray);//传递一个整型数组System.out.println("

5、n双精度型数组元素为:");printArray(doubleArray);//传递一个双精度型数组System.out.println("字符型数组元素为:");printArray(charArray);//传递一个字符型数组}}编译以上代码,运行结果如下所示:整型数组元素为:12345双精度型数组元素为:1.12.23.34.4字符型数组元素为:HELLO有界的类型参数:可能有时候,你会想限制那些被允许传递到一个类型参数的类型种类范围。例如,一个操作数字的方法可能只希望接受Number或者Number子类

6、的实例。这就是有界类型参数的目的。要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。2、实例二下面的例子演示了"extends"如何使用在一般意义上的意思"extends"(类)或者"implements"(接口)。该例子中的泛型方法返回三个可比较对象的最大值。publicclassMaximumTest{//比较三个值并返回最大值publicstatic>Tmaximum(Tx,Ty,Tz){Tmax=x;//假设x是初始最大

7、值if(y.compareTo(max)>0){max=y;//y更大}if(z.compareTo(max)>0){max=z;//现在z更大}returnmax;//返回最大对象}publicstaticvoidmain(Stringargs[]){System.out.printf("%d,%d和%d中最大的数为%d",3,4,5,maximum(3,4,5));System.out.printf("%.1f,%.1f和%.1f中最大的数为%.1f",6.6,8.8,7.7,maximum(6

8、.6,8.8,7.7));System.out.printf("%s,%s和%s中最大的数为%s","pear","apple","orange",maximum("pear","apple","orange"));}}编译以上代码,运行结果如下所示:3,4和5中最大的数为56.6,8.8和7.7中最大的数为8.8pear,apple和orange中最大

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。