【2013-10-18】《Java编程思想》读书笔记:泛型 [历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2013-10-18 标题《Java编程思想》读书笔记泛型分类编程 / java / think_in_java 标签java·think in java·泛型《Java编程思想》读书笔记泛型简单泛型类简单泛型方法含接口和父类约束的泛型基础类和接口定义泛型方法定义备注Java 泛型学习备忘。GitHubthink_in_java简单泛型类publicclassGenericClassT{publicGenericClass(Titem){super();this.itemitem;}privateTitem;publicTgetItem(){returnitem;}publicvoidsetItem(Titem){this.itemitem;}}调用方式privatestaticvoidGenericLearn(){GenericClassIntegergenIntnewGenericClassInteger(1);GenericClassStringgenStrClassnewGenericClassString(Hello);}简单泛型方法泛型类的类型参数T紧跟在类名后面泛型方法的类型参数T紧跟在方法声明的返回类型前面。publicclassGenericFuns{publicstaticTTfun(T[]a){returna[0];}publicstaticT,UStringfun2(T[]a,U[]u){TitemTa[0];UitemUu[0];returnitemT.toString() itemU.toString();}publicstaticvoidcallFun(){String[]arrsnewString[]{a,b};System.out.println(GenericFuns.fun(arrs));System.out.println(GenericFuns.Stringfun(arrs));System.out.println(GenericFuns.fun2(newFloat[]{1.0f},newInteger[]{1}));System.out.println(GenericFuns.Float,Integerfun2(newFloat[]{1.0f},newInteger[]{1}));}}含接口和父类约束的泛型基础类和接口定义abstractclassBaseClass{publicabstractintgetInt();}interfaceBaseInterFace{publicStringgetStr();}classTestClassextendsBaseClassimplementsBaseInterFace{OverridepublicStringgetStr(){returnTestClass;}OverridepublicintgetInt(){return1000;}OverridepublicStringtoString(){returnTestClass;}}泛型方法定义extends后无论是接口还是类都用extends关键字表示 Is-A 关系。若需同时满足多个类型约束用符号隔开。publicclassGenericExtends{publicstaticTextendsBaseClassintfun1(Titem){returnitem.getInt();}publicstaticTextendsBaseInterFaceStringfun2(Titem){returnitem.getStr();}// T 必须同时是 BaseClass 的子类且实现了 BaseInterFacepublicstaticTextendsBaseClassBaseInterFacevoidfun3(Titem){System.out.println(item.toString());}publicstaticvoidcallFun(){GenericExtends.fun1(newTestClass());GenericExtends.fun2(newTestClass());GenericExtends.fun3(newTestClass());GenericExtends.TestClassfun1(newTestClass());GenericExtends.TestClassfun2(newTestClass());GenericExtends.TestClassfun3(newTestClass());}}备注泛型其实很复杂尤其是类型擦除Type Erasure和通配符Wildcard后续会单独记录备忘。

相关新闻

最新新闻

如何快速安装Blue Topaz主题:打造专属笔记环境的完整指南

如何快速安装Blue Topaz主题:打造专属笔记环境的完整指南

如何快速安装Blue Topaz主题:打造专属笔记环境的完整指南 【免费下载链接】Blue-Topaz_Obsidian-css A blue theme for Obsidian. 项目地址: https://gitcode.com/gh_mirrors/bl/Blue-Topaz_Obsidian-css 你是否厌倦了Obsidian默认的单调界面?每…

2026/7/11 0:15:31
Go 数据库迁移工具链:从手写 SQL 到自动化版本管理的演进实践

Go 数据库迁移工具链:从手写 SQL 到自动化版本管理的演进实践

Go 数据库迁移工具链:从手写 SQL 到自动化版本管理的演进实践 一、手写 SQL 迁移的熵增:当 add_column_migration_v3_final_final2.sql 成为常规命名 数据库 Schema 变更是应用演进中最危险的操作。手写 SQL 的方式来管理这些变更,经过一段…

2026/7/11 0:15:31
终极PDF解密神器:3分钟永久解除科学文库7天限制的完整指南

终极PDF解密神器:3分钟永久解除科学文库7天限制的完整指南

终极PDF解密神器:3分钟永久解除科学文库7天限制的完整指南 【免费下载链接】ScienceDecrypting 破解CAJViewer带有效期的文档,支持破解科学文库、标准全文数据库下载的文档。无损破解,保留文字和目录,解除有效期限制。 项目地址…

2026/7/11 0:15:31
Visual C++运行库终极解决方案:VisualCppRedist AIO深度技术解析

Visual C++运行库终极解决方案:VisualCppRedist AIO深度技术解析

Visual C运行库终极解决方案:VisualCppRedist AIO深度技术解析 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist VisualCppRedist AIO是一个专业的Micr…

2026/7/11 0:15:31
苏州大学研究生毕业论文LaTeX模板:云端写作的完美解决方案

苏州大学研究生毕业论文LaTeX模板:云端写作的完美解决方案

苏州大学研究生毕业论文LaTeX模板:云端写作的完美解决方案 【免费下载链接】Soochow-University-Thesis-Overleaf-LaTeX-Template 苏州大学研究生毕业论文Latex模板 - Overleaf 项目地址: https://gitcode.com/gh_mirrors/so/Soochow-University-Thesis-Overleaf-…

2026/7/11 0:15:31
Paramiko SFTP 文件传输:Python 3.9 环境实现批量上传/下载的5个关键步骤

Paramiko SFTP 文件传输:Python 3.9 环境实现批量上传/下载的5个关键步骤

Paramiko SFTP 文件传输:Python 3.9 环境实现批量上传/下载的5个关键步骤在自动化运维和分布式系统管理中,文件传输是最基础却最容易出问题的环节之一。想象一下这样的场景:凌晨三点,你需要在50台服务器上紧急部署一个热修复补丁&…

2026/7/11 0:10:31

月新闻