【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后续会单独记录备忘。

相关新闻

最新新闻

JavaEE多线程(2)

JavaEE多线程(2)

1.死锁1.1产生死锁四个必要条件只要破坏其中一条就能打破死锁1)互斥条件:锁是互斥的,同一时间只能一个线程拿到锁。2)请求与保持:线程拿到一把锁,又申请另一把锁,并且不释放锁。3)不…

2026/9/1 19:57:27
基于Springboot的校园社团管理系统的设计与实现毕业设计项目源码

基于Springboot的校园社团管理系统的设计与实现毕业设计项目源码

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

2026/9/1 19:57:27
用LangChain4j构建编程助手Agent:RAG检索增强与双层记忆机制实战

用LangChain4j构建编程助手Agent:RAG检索增强与双层记忆机制实战

用LangChain4j构建编程助手Agent:RAG检索增强与双层记忆机制实战本文将详细介绍我如何基于Java LangChain4j Chroma向量数据库,从零搭建一个具备代码分析能力的编程助手Agent。项目涵盖短期/长期双层记忆架构、RAG检索增强、结构化Prompt设计等核心技术…

2026/9/1 19:57:27
基于SpringBoot的校园爱心志愿管理系统的设计与实现毕业设计项目源码

基于SpringBoot的校园爱心志愿管理系统的设计与实现毕业设计项目源码

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

2026/9/1 19:57:27
ROS2+Gazebo+ArduPilot无人机自主飞行仿真环境搭建与实战

ROS2+Gazebo+ArduPilot无人机自主飞行仿真环境搭建与实战

先说结论:只要把 ROS2、Gazebo、ArduPilot 三者正确串联,你完全可以在不上真机的情况下完成无人机自主飞行的全流程验证,包括起飞、定高、导航、返航这些任务。这套链路跑通了,再上真机,风险和心理负担都会小很多。我自…

2026/9/1 19:57:27
红外飞机小目标检测:YOLO数据集格式转换与训练实战

红外飞机小目标检测:YOLO数据集格式转换与训练实战

简介:本资源是面向计算机视觉初学者与YOLO目标检测实践者的红外飞机小目标检测专项数据集,聚焦真实场景下低对比度、小尺度目标的识别难点,适用于课程设计、毕业设计及科研原型验证。压缩包共2000个文件,含1985个高质量LabelImg标…

2026/9/1 19:52:26