电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Java泛型(generics)解析实例

8页
  • 卖家[上传人]:cn****1
  • 文档编号:477605436
  • 上传时间:2023-11-26
  • 文档格式:DOCX
  • 文档大小:56.96KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Java泛型(generics)解析实例Java泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。假定我们有这样一个需求:写一个排序方法,能够对整形数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?答案是可以使用 Java 泛型。使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。一、泛型方法你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。下面是定义泛型方法的规则:所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。类型参数能被用来声明返回值类型,并且能作为泛型方法得到的

      2、实际参数类型的占位符。泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。1、实例一下面的例子演示了如何使用泛型方法打印不同字符串的元素:public class GenericMethodTest / 泛型方法 printArray public static void printArray( E inputArray ) / 输出数组元素 for ( E element : inputArray ) System.out.printf( %s , element ); System.out.println(); public static void main( String args ) / 创建不同类型数组: Integer, Double 和 Character Integer 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.

      3、println( 整型数组元素为: ); printArray( intArray ); / 传递一个整型数组 System.out.println( n双精度型数组元素为: ); printArray( doubleArray ); / 传递一个双精度型数组 System.out.println( n字符型数组元素为: ); printArray( charArray ); / 传递一个字符型数组 编译以上代码,运行结果如下所示:整型数组元素为:1 2 3 4 5 双精度型数组元素为:1.1 2.2 3.3 4.4 字符型数组元素为:H E L L O 有界的类型参数:可能有时候,你会想限制那些被允许传递到一个类型参数的类型种类范围。例如,一个操作数字的方法可能只希望接受Number或者Number子类的实例。这就是有界类型参数的目的。要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。2、实例二下面的例子演示了extends如何使用在一般意义上的意思extends(类)或者implements(接口)。该例子中的泛型方法返回三个可比较对象的

      4、最大值。public class MaximumTest / 比较三个值并返回最大值 public static T extends Comparable T maximum(T x, T y, T z) T max = x; / 假设x是初始最大值 if ( pareTo( max ) 0 ) max = y; /y 更大 if ( pareTo( max ) 0 ) max = z; / 现在 z 更大 return max; / 返回最大对象 public static void main( String args ) System.out.printf( %d, %d 和 %d 中最大的数为 %dnn, 3, 4, 5, maximum( 3, 4, 5 ) ); System.out.printf( %.1f, %.1f 和 %.1f 中最大的数为 %.1fnn, 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) ); System.out.printf( %s, %s 和 %s 中最大的数为 %sn,pear, apple, orange, m

      5、aximum( pear, apple, orange ) ); 编译以上代码,运行结果如下所示:3, 4 和 5 中最大的数为 56.6, 8.8 和 7.7 中最大的数为 8.8pear, apple 和 orange 中最大的数为 pear泛型类泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分。和泛型方法一样,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。因为他们接受一个或多个参数,这些类被称为参数化的类或参数化的类型。实例如下实例演示了我们如何定义一个泛型类:public class Box private T t; public void add(T t) this.t = t; public T get() return t; public static void main(String args) Box integerBox = new Box(); Box stringBox = new Box(); integerBox.add(new Integer(10); stringBox.add(new String(博客园); System.out.printf(整型值为 :%dnn, integerBox.get(); System.out.printf(字符串为 :%sn, stringBox.get(); 编译以上代码,运行结果如下所示:整型值为 :10字符串为 :博客园学习Java视频教程,上我学院网,关注我学院网微信公众号(woxueyuan_com),回复课程代码或课程关键词即可获取相关课程。快来试试吧!

      《Java泛型(generics)解析实例》由会员cn****1分享,可在线阅读,更多相关《Java泛型(generics)解析实例》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.