Java泛型总结(集合泛型、方法泛型、通配符)

别让你的URDF模型在Gazebo里‘躺平’:手把手教你配置libgazebo_ros_diff_drive插件让两轮小车动起来 本文详细解析了如何在Gazebo中配置libgazebo_ros_diff_drive插件,使两轮小车模型实现动态仿真。从URDF模型到传动装置,再到差速驱动插件的精细调参,手把手教你解决机器人‘躺平’问题,提升ROS1与Gazebo仿真的实战能力。 阅读详情


	/*
1,泛型的限定
	*/
	public static void main(String[] args) 
	{
		Class<Number> x=String.class.asSubclass(Number.class);
		Class<?> x=Class<String> y;

		HashMap<String ,Integer> maps = new HashMap<String,Integer>;
		maps.put("zxx",28);
		maps.put("lhm",25);
		maps.put("flx",35);

		Set<Map.Entry<String,Integer>> entrySet = maps.entrySet();
		for (Map.Entry<String,Integer> entry : entrySet)
		{	System.out.println(entry.getKey()+":"+entry.getValue());
		}



		swap(new String[]{"abc","xyz","itcast"},1,2);
		swap(new Integer[]{1,3,5,6,7},2,3);//泛型参数必须为引用类型;
	}
/*2,泛型方法:
泛型类定义的反应,在整个类中有效,如果被方法使用,那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了.

为了让不同方法可以操作不同类型,而且类型还不确定,那么可以将泛型定义在方法上.

*/
	private static <T> void swap(T[] a,int i,int j){//在返回类型前写<泛型>,数组也是前写<泛型>
		T tmp = a[i];
		a[i] = a[j];
		a[j] = tmp;
	}

	add(3,5);
	Number x1 = add(3.5,3);//返回是Number类型
	Object x2 = add(3,"abc");//

	private static <T> T add(T x,T y){//在返回类型前写<泛型>
		return x+y;
	}
	/*
3,利用泛型的方法限定,来转换参数类型
	*/
	Object boj="abc";
	String x3 = autoConvert(obj);
	private static <T> T autoConvert(Object obj){
		return (T)obj;
	}
/*
4,简单应用
*/
	private static <T> void fillArray(T[] a,T obj){
		for(int i=0;i<a.length;i++){
			a[i]=obj;
		}
	}
	public static <T> void printCollection(Collection<T> collection,T obj){
		System.out.println(collection.size());
		for (Object obj:collection )
		{	System.out.println(obj);
		}
		collection.add(obj);//用了泛型代替?通配符后,就可引用带参数的方法了;
	}
/*
5,通配符<?>,也可以理解为占位符号
? extends E:可以接受E类型或者E的子类型 上限 <? extends E>
? super E:可以接受E或E的父类型 下限  <? super E>
ArrayList<? extends Object> al = new ArrayList<String>(); al.add("aa");  //错  
   因为集合具体对象中既可存储String,也可以存储Object的其他子类,所以添加具体的类型对象不合适,类型检查会出现安全问题.

*/

//6,泛型的传播
	copy1(new Vector<String>(),new String[10]);//可以
	copy2(new Date[10],new String[10]);//可以
	//copy1(new Vector<Date>(),new String[10]);//错误
	public static <T> void copy1(Collection<T> dest,T[] src){
		
	}	
	public static <T> void copy2(T[] dest,T[] src){
		
	}
}
/*
7,new对象时,两边的泛型兼容性
一边使用泛型,一边使用原始类型时,是可以兼容的;
两边都使用泛型是,泛型参数不具备继承性;
ArrayList<String> al = new ArrayList<Object>();  //错

*/

/*
8,定义泛型类型
如果类的实例对象中的多处都要用到同一个泛型参数,即这些地方引用的泛型类型要保持同一个实际类型时,这时候就要采用泛型类型的方式进行定义,也就是类级别的泛型.
public class GenericDao<T>{
	public void add(T x){}
	public T findById(int id){}
	public void delete(T obj){}
	public void delete(int id){}
	public void update(T obj){}

	public T findByUserName(){} 
	public Set<T> findByConditions(String where){return null}
}
*/
/*
9,静态方法不能定义泛型,因为静态加载时,还不知道有什么对象,造成冲突;
*/

 


173、NPU的编译器开发:开源社区贡献指南 本文分享了在NPU编译器开源社区贡献的经验心得。作者通过实际案例(如卷积维度错误、NaN输出等)阐述了NPU编译器开发的特殊性:硬件迭代快、边界条件复杂、厂商代码不可全信。提出有价值的贡献应聚焦硬件适配测试、性能剖析工具和反模式文档三类内容。强调用实测数据沟通、主动承担维护责任、保持代码通用性等社区协作技巧,并建议通过RFC提前沟通、附硬件实测数据等方式提高PR通过率。最后指出,NPU编译器开发是与聪明人共同填坑的过程,鼓励开发者提交"有诚意的代码"而非完美代码。 阅读详情

相关推荐

新手必看!华为S5700交换机健康检查清单:从CPU到日志的完整巡检流程

本文为新手网管人员提供华为S5700交换机的健康检查完整指南,涵盖CPU、内存、温度、日志等核心指标的日常维护流程。通过详细的display命令和实用案例,帮助用户快速掌握设备体检技巧,确保交换机稳定运行。

weixin_29251337的博客 237

Java泛型详解:Java泛型集合、泛型类、泛型方法、泛型的使用

在 Java 1.5 之前没有泛型,通常需要使用强制类型转换的方式将一种数据类型转换为另一种数据类型,这种转换要求开发者对实际参数的类型具有可预知性。对于强制类型转换错误的情况,编译器可能不会提示错误,但是在运行时会出现异常,这是一个安全隐患。 为了解决这一隐患,从 Java 1.5 开始提供了泛型。泛型可以在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。本节将详...

jijiangpeng的博客 7445

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 911

JAVA集合中泛型的原理本质简介

Java集合中的泛型机制 集合中之所以可以存放不同类型的数据是因为全部当作Object类型处理的,当从集合中取出元素并希望表达该数据最原始的类型时就需要进行强制类型转换,强制类型转换不仅使得代码更加繁琐而且可能导致类型转换异常的发生. 为了避免上述问题的发生,从jdk1.5开始提供泛型机制,也就是在集合名称的右边使用&lt;数据类型&gt;的方式明确规定该集合中可以存放的元素类型,若存放其他类...

xyphf的博客 2846

ZEMAX学习 6.一个照相物镜的设计

曲线越平滑表示场曲越小,曲线越接近水平,系统边缘与中心对比度越接近,虚实越接近表示色差和色散越好;第1个面设计不合理,出现前后表面相交的情况,点击第1面厚度,选择边缘厚度,设置为0.1,第1面厚度被控制在0.1mm厚,系统根据这一设置始终保持第1面边缘厚度为0.1mm。要求:设计一个照相物镜,焦距f=9mm,F#为4,视场角40°;添加有效焦距操作数EFFL 9mm 权重为1,设置优化变量,如下图,ctrl+shift+o打开优化界面。报告中系统数据有效焦距为67.381mm,设计要求为9mm;

qq_24542783的博客 4711

BMS短路测试避坑指南:从炸管到稳定,我是如何搞定MOS管和TVS的

本文详细记录了BMS短路测试中MOS管和TVS的优化过程,从驱动电阻调整、PCB寄生参数控制到TVS选配策略,提供了一套实用的调试方法论。通过实战案例解析,帮助工程师避免常见陷阱,实现稳定可靠的短路测试性能。

weixin_30652897的博客 140

Java设计模式泛型化之组合模式

组合模式通常用来描述一个类似树状的结构。 一个“根”节点 几个“枝”节点 几个“叶”节点 其代码结构如下: 抽象组件层(视为任何一种类型节点的抽象) public abstract class Component { // structure maintenance operation public void add(Component component) {

道 1716

音视频开发—H264相关概念和压缩原理详解(GOP、宏块、帧内压缩、帧间压缩)

本文讲述了H264相关概念和原理——GOP概念,SPS与PPS,帧内压缩原理,帧间压缩原理,解释了什么是运动补偿,什么运动矢量等等概念

weixin_46999174的博客 3978

java 泛型与集合_java基础语法集合框架与泛型(List和Set)

一.集合集合定义1.集合:解决数组中固定长度不变,无法获取实际存储元素个数,查找效率比较低的问题而引入java集合框架2.Collection接口是最基本的集合接口,可以存储一组不唯一,无序的对象。二.List接口List接口继承Collection接口,是存储可重复的有序的对象1.ArrayList底层是可变数组,遍历元素更快,改变值更快基本步骤导入ArrayList类:import java....

weixin_35430535的博客 153

ZYNQ PL通过EMIO ETHE1外接PHY由GMII转RGMII

1,设置EMIO方式引出ETHE1 2,从GMII过度到RGMII GMII: 发送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er 接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_er RGMII: 发送 tx_clk tx_d[3:0] tx_ctrl 接收 rx_clk rx_d[3:0] rx_ctrl 首先数据总线从时钟单边沿采样8bit转变为了双边沿采样4bit,从88E1

wangjie36的博客 1万+

【100%通过率】2023华为od机试C卷【围棋的气】Python 实现

围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19 x 19 = 361 个交点,对奔双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。 “气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:

MISAYAONE的博客 1858

Java泛型深度解析:通配符、泛型方法与集合

Java泛型深度解析:通配符、泛型方法与集合

weixin_43337246的博客 527

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 595

Java-什么是泛型,为什么使用泛型,集合中的泛型使用,自定义泛型类,泛型方法,泛型的使用场景,泛型在继承方面的体现,无边界通配符,上界通配符,下界通配符,泛型的约束与局限性

Java-什么是泛型,为什么使用泛型,集合中的泛型使用,自定义泛型类,泛型方法,泛型的使用场景,泛型在继承方面的体现,无边界通配符,上界通配符,下界通配符,泛型的约束与局限性

H_X_P_的博客 553

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java语言基础(集合框架2(泛型类、泛型方法、泛型接口、泛型高级之通配符))

Java语言基础 集合框架 泛型 概述: 是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型;泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 泛型的由来: 通过Object转型问题引入。早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题,也就存在这隐患,所以Java提供了泛型来解决...

Pluto.的博客 326

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java基础学习——Java集合(四)泛型、泛型类与泛型方法、泛型的通配符

一、

skx1102195517的博客 610

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java基础知识八:Set集合介绍、HashSet、LinkedHashSet、TreeSet、泛型介绍、泛型类、泛型方法、泛型接口、类通配符、可变参数及常用方法

Set集合 1、Set集合基本介绍 Set集合 :是一个不包含重复元素的集合 Set集合特点:没有带索引的方法,所以不能使用普通for循环进行遍历 HasSet:对集合的跌代顺序不做任何保证 哈希值:用HasCode()方法获取,同一个对象多次调用该方法获取的值是一样的 注意:1. 默认情况下,不同对象的哈希值是不同的 2.通过方法重写,可以实现不同对象的哈希值是相同的 2、HahSet案例:遍历学生对象元素 3、LinkedHashSet讲解与案例 1...

分享Java技术知识,共同成长进步! 383

泛型通配符、定义泛型类型

一、泛型的通配符 1、 如果要定义一个方法,用于打印出任何参数化类型的集合中的所有数据,该如何定义呢?上一篇提到过了,参数化类型不考虑参数类型 间的继承关系。 因此如下定义就通不过编译: public static void printCollection(Collection cols) {     for(Object obj:cols) {         System.o

nazhidao的专栏 5003

【Java基础-46.3】Java泛型通配符详解:解锁类型安全的灵活编程

泛型通配符是Java泛型中一个强大的工具,它通过extends T>和super T>提供了灵活的类型支持。理解并掌握通配符的用法,可以帮助你编写更通用、更安全的代码。记住PECS原则,合理选择上界和下界通配符,可以让你的代码更加优雅和高效。

weixin_39033358的博客 1635

泛型的使用与通配符

泛型的使用 1.jdk1.5新特性泛型 把元素的类型设计成一个参数,这个参数类型叫做泛型。 2.为什么要使用泛型? 类型无限制,类型不安全。 类型强制转换时,容易出现异常。ClassCastException 3.在集合中使用泛型 集合接口或类在jdk5.0时都修改为带泛型的结构。 在实例化集合类时,可以指明具体的泛型类型。 指明完以后,在集合类或接口中凡是定义接口或类时,内部结构使用到类的泛型位置,都指定为实例化的泛型。 泛型的类型必须是一个类。使用基本数据类型时,需要转换为包装类。 如果实例化时,

星海IT学习之路 669

Java 泛型(Generic) 自定义泛型类和泛型接口和泛型方法的使用、泛型通配符

Java 泛型(Generic)1.为什么要有泛型(Generic)1.没有使用功能泛型时2.使用泛型时3.泛型2.泛型的使用1.泛型的声明2.泛型的实例化:3泛型的几个重要使用1. 泛型类(含集合类)需要注意的点2.在集合中使用泛型3.自定义泛型类、泛型方法4.泛型类的继承5.泛型接口4.泛型通配符 1.为什么要有泛型(Generic) 1.没有使用功能泛型时 解决元素存储的安全性问题 在集合...

码农回顾 4761

【Java 数据结构】泛型

(1)JDK1.5以后(2)泛型实际就是 一个引起来的 参数类型,这个参数类型 具体在使用的时候才会确定具体的类型。(3)使用了泛型以后,可以确定集合中存放数据的类型,在编译时期就可以检查出来。(4)使用泛型你可能觉得麻烦,实际使用了泛型才会简单,后续的遍历等操作简单。都是引用数据类型,不能是基本数据类型。在JDK1.7以后可以写为:-- ---钻石运算符1.泛型类,泛型接口/*** GenericTes就是一个普通的类。

书生-w的博客 1万+

java泛型学习三:受限制的通配符以及泛型方法

 一、受限制的通配符   package generic; import generic.windcard.Circle; import generic.windcard.Shape; import java.awt.Canvas; import java.util.ArrayList; import java.util.List; //受限制的通配符 public cl...

qingfeng_825的专栏 336

【Java】泛型类、泛型方法、泛型接口、泛型受限、通配符

*** GenericTes就是一个普通的类* GenericTest<E> 就是一个泛型类* <>里面就是一个参数类型,但是这个类型是什么呢?这个类型现在是不确定的,相当于一个占位* 但是现在确定的是这个类型一定是一个引用数据类型,而不是基本数据类型*/int age;E sex;

qq_45321886的博客 1177

Java泛型、集合

java泛型 01-泛型的引入 定义:是用泛型可以指代任意对象类型 引用泛型的作用:简化向上转型和向下转型 //泛型类要+<>,<>内的字母可以随意,但是一般都是用T(type) public class test<T> { private T ob; public T getob() { return ob; } public void setob(T ob) { this.ob=ob;

嘤嘤鸭的博客 256

Java高级编程—泛型

新秧初出水,渺渺翠毯齐,及时趁芒种,散著畦东西。一入芒种,收苗插秧,又到了农家最忙碌的季节。中国自古便有着博大精深的农耕文化,梯田更是其中的历史瑰宝,它既体现了农人与自然和谐共生的智慧,也形成了独具地方风情的人文景观。来到丹寨高要梯田,在田野中感受夏日微热的风,在这个芒种时节返璞归真,让诗意的烟火尽情纵横于山野之间。

triumph_421的博客 1761
上一篇: Java注解类的定义/使用和反射
下一篇: Java多线程同步的一层对象/二层对象/三层对象写法对比
marching21
博客等级 码龄12年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值