java泛型的深入 泛型还可以在很多地方进行定义 泛型类 泛型方法 泛型接口 泛型的继承和通配符 泛型类练习
文章目录
- 泛型的深入
- 泛型还可以在很多地方进行定义
- 泛型类
- 泛型方法
- 泛型接口
- 泛型的继承和通配符
- 泛型类练习
- 总结
泛型的深入

public static void main(String[] args) {//在没有泛型的时候怎么存储数据ArrayList list=new ArrayList();list.add(1);list.add("abc");//遍历集合Iterator iterator = list.iterator();while(iterator.hasNext()){Object o = iterator.next();//多态的弊端 不能访问子类特有的功能//o.length()就会报错//由此得出如果没有给集合限定类型那么所有类型都是object类型System.out.println(o);//打印结果1//abc}}
结论:如果我们给定集合的类型 那么所有数据类型都是object
此时可以往集合添加任何的数据类型
带来一个坏处我们获取数据的时候无法用她的特有行为
所以推出泛型
以上为泛型的好处

以上为泛型的细节
泛型还可以在很多地方进行定义

泛型类

思考:并且自己写出一个泛型类
public class myArrayList <E>{Object []obj=new Object[10];int size;//表达长度 你现在存了几个元素public boolean add(E e){obj[size]=e;//相当于现在要把元素添加到数组size++;return true;//表示添加成功}public E get(int index){return (E) obj[index];}//重写toString 要求返回对象属性值1@Overridepublic String toString() {return Arrays.toString(obj);}
}

泛型方法


下面是应用场景
public class ListUtil {//这是一个工具类//所以要私有化其构造方法(不让外界创建他的对象 )private ListUtil(){}//这个工具类的作用是让集合可以添加元素//参数1是集合 参数二是参数public static <E>void addall(ArrayList<E>list,E e1,E e2,E e3,E e4){list.add(e1);list.add(e2);list.add(e3);list.add(e4);}}

如果泛型只需要使用一次可以不用创建在整个类下(红圈的),可以单独创建在方法里形参及方法体都可以使用
代码改写 上面的有限制只能添加四个 改写下可以添加多个
public class ListUtil {//这是一个工具类//所以要私有化其构造方法(不让外界创建他的对象 )private ListUtil(){}//这个工具类的作用是让集合可以添加元素//参数1是集合 参数二是参数public static <E>void addall(ArrayList<E>list,E...e){//他的底层是一个数组//可以用普通for遍历也可以用增强forfor (E election : e) {list.add(election);}}}

泛型接口


1:实现类给出具体的类型.在实现的地方定义泛型类型表示就只能这个类型了

以上为实现类也不明确类型
泛型的继承和通配符
泛型不具备继承性,但是数据具备继承性.
import java.util.ArrayList;public class GenericsDemo {public static void main(String[] args) {//泛型不具备继承性 但是数据具备继承性ArrayList<ye>list1 =new ArrayList<ye>();ArrayList<fu>list2=new ArrayList<fu>();ArrayList<zi>list3 =new ArrayList<zi>();method(list1);method(list2);method(list3);//这个就是泛型不具备继承性 list2 3 报错了 因为他俩是继承来的list1.add(new ye());list1.add(new fu());list1.add(new zi());//这个是数据具备继承性}public static void method(ArrayList<ye> list){}
}
class ye{}
class fu extends ye{}
class zi extends fu{}

public class GenericsDemoTongpei {public static void main(String[] args) {//泛型不具备继承性 但是数据具备继承性ArrayList<ye> list1 =new ArrayList<ye>();ArrayList<fu>list2=new ArrayList<fu>();ArrayList<zi>list3 =new ArrayList<zi>();method(list1);method(list2);method(list3);}//这种方法不要严谨 因为它可以接收所有类//但是如果我只想限定的只接受部分类呢//这时候就用到了通配符// ? extend E表示可传递e或者e的所有的子类类型// ? super E表示传递e或者e的所有父类类型public static<E> void method(ArrayList<E> list){}
}
class ye{}
class fu extends ye{}
class zi extends fu{}
这种方法不要严谨 因为它可以接收所有类
但是如果我只想限定的只接受部分类呢
这时候就用到了通配符
? extend E表示可传递e或者e的所有的子类类型
? super E表示传递e或者e的所有父类类型

泛型类练习

public static void main(String[] args) {ArrayList<BosiCat>list1=new ArrayList<>();ArrayList<LihuaCat>list2=new ArrayList<>();ArrayList<TaidiDog>list3=new ArrayList<>();ArrayList<huskey>list4=new ArrayList<>();keepPet(list1);keepPet(list2);//要求1keepPet2(list3);keepPet2(list4);//要求2keepPet3(list1);keepPet3(list3);//要求3}//要求1:该方法能养所有品种的猫但不能养狗public static void keepPet(ArrayList<? extends Cat>list){}//要求2:该方法能养所有品种的狗但不能养猫public static void keepPet2(ArrayList<? extends Dog>list){}//要求3:该方法能养所有动物但是不能是其他类型public static void keepPet3(ArrayList<? extends animal>list){}
总结


相关文章:
java泛型的深入 泛型还可以在很多地方进行定义 泛型类 泛型方法 泛型接口 泛型的继承和通配符 泛型类练习
文章目录 泛型的深入泛型还可以在很多地方进行定义泛型类泛型方法泛型接口 泛型的继承和通配符泛型类练习总结 泛型的深入 public static void main(String[] args) {//在没有泛型的时候怎么存储数据ArrayList listnew ArrayList();list.add(1);list.add("abc");//遍…...
持续交付的好处
在软件领域,持续交付就是这样一种开发实践,它为所有利益相关者带来好处:开发、运营、测试人员和业务团队。持续交付适用于每个由软件驱动的组织;很难想象企业不使用软件。 它使人们受益,并需要人们做出改变才能更好地…...
APP开发:用途与未来前景|软件定制开发|网站小程序建设
APP开发:用途与未来前景|软件定制开发|网站小程序建设 APP开发已成为现代科技趋势的一部分,无论是日常生活还是商业领域,都有它的身影。通过开发APP,我们可以将想法、功能和内容转化为直观、易用的移动设备应用程序,满…...
图论——并查集
参考内容: 图论——并查集(详细版) 并查集(Disjoint-set)是一种精巧的树形数据结构,它主要用于处理一些不相交集合的合并及查询问题。一些常见用途,比如求联通子图、求最小生成树的 Kruskal 算法和求最近公共祖先&…...
计算机毕业设计java+vue+springboot的论坛信息网站
项目介绍 本论文系统地描绘了整个网上论坛管理系统的设计与实现,主要实现的功能有以下几点:管理员;首页、个人中心、用户管理、公告管理、公告类型管理、热门帖子管理、帖子分类管理、留言板管理、论坛新天地、我的收藏管理、系统管理&#…...
.net core添加SQL日志输出
GreDbContext : Microsoft.EntityFrameworkCore.DbContext 下添加 public static readonly ILoggerFactory MyLoggerFactory LoggerFactory.Create(builder > { builder.AddConsole(); }); protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder…...
虚幻5.1 常见的效果关闭方式
常见的虚幻效果关闭方式 1.Bloom ProjectSettings->Rendering->Default Settings->Bloom PostProcessVolume->Lens->Bloom 2.Ambient Occlusion/Screen Space Ambient Occlusion(SSAO) ProjectSettings->Rendering->Default Settings->Ambient Occl…...
每日一题 --- 力扣318----最大单词长度乘积
这道题时间复杂度我感觉设置的不是很好,应该最好是有一个1000变成10000就行。 因为我在做这道题的时候被误导了,以为双重循环暴力判断一下也能过,因为1000*1000 *26的时间复杂度没有到1亿,那么我刚开始认为是能过的,结…...
掌动智能性能压力测试优势有哪些
企业通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。本文将介绍性能压力测试的价值及主要优势! 一、性能压力测试的价值 1、评估系统能力:有助于参数的基准测试,可以度量系统的响应时间;还有助于检查系统是否可…...
虚拟机没有桥接模式--物理机WiFi不见了--注册表修复
我们知道虚拟机有三种模式: vmnet0 桥接模式;vmnet1 仅主机模式;vmnet8 NAT模式 我自己以前一直用的NAT模式,今天突然要用到桥接模式,发现无法切换... 我下面这个是后面弄好了的,最开始是没有显示桥接模式…...
【Python】批量下载素材酷视频资源
【需求】 做视频精彩需要用到梗图视频等,但是素材酷上面的视频没有搜索功能,每次用起来还要去下载也很麻烦,下载只能一个一个下载也很麻烦,下要搞一个能够批量下载的功能,然后把下载的资源全部放进万兴喵影编辑器的云空间,这样就可以做到随做随查随用了。 【效果】 目…...
QuantLib学习笔记——一个简单的价值估算案例
⭐️ 前言 QuantLib很强大,它实现了很多金融工具及其价值估算方法,从最简单的折现模型,到利用BSM模型对期权进行定价,覆盖面相当齐全。本文以一个简单的净现值估算案例,开启笔者金融工具估值的旅程。 开上豪车&#…...
智能语音和自然语言处理技术
一、定义 智能语音和自然语言处理技术是指通过计算机技术实现人机交互的一种技术。它可以让计算机和人类之间进行自然而流畅的交流,从而实现更高效、更便捷、更智能的信息交流和处理。 智能语音和自然语言处理技术主要包括语音识别、语音合成、自然语言理解、自然…...
【Sql】sql server数据库提示:执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。
【问题描述】 打开sql server2008r2数据库的时候, 系统提示执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。 【概念理解】 首先MSDB数据库是的作用: 用于给SQL Server代理提供必要的信息来运行调度警…...
Day 5 登录页及路由 (三) 基于axios的API调用
系列文章目录 本系列记录一下通过Abp搭建后端,VueElement UI Plus搭建前端,实现一个小型项目的过程。 Day 1 Vue 页面框架Day 2 Abp框架下,MySQL数据迁移时,添加表和字段注释Day 3 登录页以及路由 (一)Day 4 登录页以…...
雷神学习---视音频数据处理入门:RGB、YUV像素数据处理
原文地址:https://blog.csdn.net/leixiaohua1020/article/details/50534150 从代码可以看出,如果想把YUV格式像素数据变成灰度图像,只需要将U、V分量设置成128即可。 这是因为U、V是图像中的经过偏置处理的色度分量。色度分…...
Asp.Net Core服务端处理请求过来的压缩格式
之前是直接传没有经过压缩的文件字节,有时文件过大的话,可能占宽带就多,宽带流量都是钱。后来有个想法,在客户端把文件进行压缩,把压缩的文件流发给服务端进行解压。 1,先修改项目中Startup.cs文件中Confi…...
自定义指令
二、自定义指令 1.指令介绍 内置指令:v-html、v-if、v-bind、v-on… 这都是Vue给咱们内置的一些指令,可以直接使用 自定义指令:同时Vue也支持让开发者,自己注册一些指令。这些指令被称为自定义指令 每个指令都有自己各自独立的功…...
仿真实现lio_sam建图和ndt_matching定位
文章目录 一、仿真环境二、lio_sam建图1.修改配置文件2.开始建图 三、ndt_matching定位1.新建启动文件2.启动 总结 一、仿真环境 使用现有开源的仿真环境—从零开始搭建一台ROS开源迷你无人车,作者已经配置好小车模型以及gazebo环境,imu频率已改为200HZ…...
IDEA取消git对项目的版本控制
前言 前几天新建项目的时候不小心选了个git仓库,导致这个测试项目一直被git管理着。 解决办法 1 右键项目 选择打开资源目录 2 删除.git文件 把目录下的.git文件删掉 3 删除idea中的git管理 删除完.git文件后,进入idea,右下角会有这样的提…...
从怀疑到真香!2026我日常办公离不开的这款在线文字转换器太好用了
刚入职那半年我踩过太多坑:一周三次新人培训,怕漏记知识点全程录音,下课手动整理1小时录音要熬3小时,知识点散得根本没法复习;部门周会做完记录,散会就要我出整理好的纪要,赶工赶得饭都吃不上&a…...
Unity Il2CppDumper原理与实战:解析元数据与二进制对齐
1. 这不是“破解工具”,而是Unity开发者该懂的二进制真相课 你刚在Unity Asset Store下载了一个功能惊艳的插件,却在打包iOS后发现部分逻辑失效;或者接手一个没有源码的旧项目,只有一堆 .dll 和 .so 文件,连主入口…...
如何用deberta-v3-base-zeroshot-v2.0构建企业级NLP应用?完整教程来了
如何用deberta-v3-base-zeroshot-v2.0构建企业级NLP应用?完整教程来了 【免费下载链接】deberta-v3-base-zeroshot-v2.0 项目地址: https://ai.gitcode.com/hf_mirrors/NingBo_Ascend/deberta-v3-base-zeroshot-v2.0 deberta-v3-base-zeroshot-v2.0是一款基…...
HFSS仿真结果怎么看?一文读懂S参数与电场图,让你的T型波导分析不再迷茫
HFSS仿真结果深度解析:从S参数到电场图的工程实践指南面对HFSS仿真生成的复杂数据图表,许多工程师常陷入"看得见数据却读不懂含义"的困境。本文将带您穿透数据表象,掌握T型波导性能分析的核心方法论。1. S参数:波导性能…...
2026 新视角:化妆品开发的底层逻辑,做好一款产品,从选对原料开始
在化妆品研发链条中,配方架构、生产工艺、包装设计固然重要,但决定一款产品上限的,永远是原料。一款稳定、安全、表现优异的护肤成品,离不开纯净、达标、批次一致的优质原料。对于品牌方、配方师、代工企业而言,原料不…...
Scroll Reverser:让Mac的多设备滚动体验回归直觉的免费神器
Scroll Reverser:让Mac的多设备滚动体验回归直觉的免费神器 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 你是否曾经在MacBook的触控板和鼠标之间切换时࿰…...
为什么92%的团队用DeepSeek生成方案仍需人工重写?揭秘缺失的2个元认知层与1套校验协议
更多请点击: https://intelliparadigm.com 第一章:为什么92%的团队用DeepSeek生成方案仍需人工重写?揭秘缺失的2个元认知层与1套校验协议 当团队将DeepSeek-R1或DeepSeek-VL模型用于技术方案生成时,表面看响应迅速、逻辑连贯&…...
基于SMD与贝壳的微型音频装置:从电路设计到嵌入式开发的完整实践
1. 项目概述:一个藏在贝壳里的声音世界你小时候有没有捡起一个海螺壳,把它贴在耳边,然后听到里面传来“呜呜”的海风声?那个瞬间,仿佛整个海洋都被装进了小小的贝壳里。今天这个项目,就是把那个童年的魔法&…...
【C语言】C 语言为什么叫 C 语言呢?
【C语言】C 语言为什么叫 C 语言呢?笔记改自于王道训练营资料 其实是因为先有高级语言ALGOL 60,简称 A 语言,后来经过简化,变为 BCPL 语言,简称 B 语言,而 C 语言是在 B 语言的基础之上发展而来的ÿ…...
Fiddler手机断网真相:TLS握手与证书固定的协议级拦截
1. 为什么Fiddler一开,手机就断网?这不是配置问题,是协议层的“信任危机”Fiddler抓包手机流量,本该是移动开发、测试、安全分析中最基础的操作之一。但几乎每个刚上手的人,都会在第二天早上发现:手机Wi-Fi…...

