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

相关新闻

基于TPA3128D2和STM32F303VE的高保真音频系统设计

基于TPA3128D2和STM32F303VE的高保真音频系统设计

1. 从零搭建基于TPA3128D2和STM32F303VE的高保真音频系统去年调试智能音箱项目时,我对比了市面上十几款功放芯片,最终被TI的TPA3128D2惊艳到了。这款D类功放芯片在25W输出功率下THDN(总谐波失真加噪声)仅0.1%,搭配STM3…

2026/7/10 23:11:55 阅读更多 →
Java笔记-3 函数和数组

Java笔记-3 函数和数组

一、函数(方法)1. 基础概念函数 方法,程序运行本质是函数执行,main 是程序入口函数完整语法修饰符 返回值类型 方法名(形参列表){代码逻辑;return 返回值; // void方法可省略return,也可单独写return; }public class …

2026/7/10 23:09:55 阅读更多 →
Rust unsafe 的使用边界

Rust unsafe 的使用边界

Rust语言以其内存安全和线程安全的特性闻名,但为了与系统底层交互或实现高性能代码,Rust提供了unsafe关键字来突破编译器的安全检查。unsafe并非完全禁用安全机制,而是划定了一条明确的边界,开发者需在此边界内谨慎操作。本文将探…

2026/7/10 23:09:55 阅读更多 →

最新新闻

PilotGo-plugin-ELK插件开发入门:10个步骤创建你的第一个插件

PilotGo-plugin-ELK插件开发入门:10个步骤创建你的第一个插件

PilotGo-plugin-ELK插件开发入门:10个步骤创建你的第一个插件 【免费下载链接】PilotGo-plugin-ELK ELK plugin for PilotGo. 项目地址: https://gitcode.com/openeuler/PilotGo-plugin-ELK 前往项目官网免费下载:https://ar.openeuler.org/ar/ …

2026/7/10 23:54:09 阅读更多 →
AI的“停止机制”缺失:从邮箱验证码限流看AI审查的过度设计陷阱

AI的“停止机制”缺失:从邮箱验证码限流看AI审查的过度设计陷阱

摘要 本文通过对一篇关于“邮箱验证码发送限流”代码审查笔记的深度解读,揭示了一个关键现象:AI在审查模式下会无休止地增加复杂度,缺乏内在的“停止机制”。文章通过三个精准描述,将这一现象与作者在B系列和C系列测试中的观察相呼…

2026/7/10 23:50:08 阅读更多 →
最小可运行示例:血型遗传查询 API 接入指南

最小可运行示例:血型遗传查询 API 接入指南

适用场景 血型遗传查询通常用于亲子关系科普、教育演示、或家庭娱乐类应用。用户通过输入父母双方的血型(A/B/AB/O),系统基于 ABO 显性遗传规律计算子女可能或不可能出现的血型。该接口覆盖全部 16 种父母组合,响应为毫秒级&…

2026/7/10 23:50:08 阅读更多 →
kconfigDetector架构解析:从预处理到语法分析的完整流程

kconfigDetector架构解析:从预处理到语法分析的完整流程

kconfigDetector架构解析:从预处理到语法分析的完整流程 【免费下载链接】kconfigDetector Tools for detection kernel configuration error values. 项目地址: https://gitcode.com/openeuler/kconfigDetector 前往项目官网免费下载:https://ar…

2026/7/10 23:48:07 阅读更多 →
前端应用离线暂停更新策略:从理论到实践

前端应用离线暂停更新策略:从理论到实践

1. 引言:为什么需要离线暂停更新策略? 在当今快速迭代的 Web 应用开发环境中,前端应用的更新频率越来越高。传统的强制刷新更新策略虽然简单直接,但在用户体验和业务连续性方面存在明显缺陷。离线暂停更新策略应运而生&#xff0…

2026/7/10 23:46:07 阅读更多 →
witty-opencode企业级应用案例:构建可扩展的AI助手平台

witty-opencode企业级应用案例:构建可扩展的AI助手平台

witty-opencode企业级应用案例:构建可扩展的AI助手平台 【免费下载链接】witty-opencode AI agent client built on top of OpenCode, including the TUI frontend, agent backend, and SDK. 项目地址: https://gitcode.com/openeuler/witty-opencode 前往项…

2026/7/10 23:46:07 阅读更多 →

日新闻

STM32与LTC1864高精度ADC的SPI通信实现

STM32与LTC1864高精度ADC的SPI通信实现

1. 项目背景与核心需求在工业控制和嵌入式系统开发中,模拟信号与数字系统的无缝集成一直是工程师面临的关键挑战。LTC1864作为一款16位高精度ADC转换器,配合STM32F101ZG这类主流微控制器,能够构建高性能的模拟信号采集系统。这种组合特别适合…

2026/7/10 0:03:07 阅读更多 →
猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而烦恼吗&am…

2026/7/10 0:05:09 阅读更多 →
直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

1. 直流有刷电机驱动方案概述在工业自动化和消费电子领域,直流有刷电机因其结构简单、控制方便、成本低廉等优势,仍然是许多应用场景的首选驱动方案。TC78H653FTG作为东芝推出的新一代H桥驱动器,与MKV46F256VLH16微控制器配合使用&#xff0c…

2026/7/10 0:05:09 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/10 19:03:29 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻