java关于泛型与自定义泛型的使用

别再傻傻用外部中断了!STM32H743定时器编码器模式4倍频测速保姆级配置(附CubeMX+HAL库代码) 本文详细介绍了STM32H743定时器编码器模式的4倍频测速配置方法,通过CubeMX和HAL库实现高效脉冲计数。相比传统外部中断方案,硬件编码器模式显著降低CPU占用率,提升测速精度,适用于电机控制和运动检测等高要求场景。 阅读详情
     泛型的应用在java里也是很普遍的,jdk1.5之前,如果将一个String类型的对象添加到一个集合中,可能会出现这样的状况,由于程序员的疏忽,将String类型的对象转成了其他类型的对象。所以说,泛型的出现,解决了对象失去特性的问题。
     泛型的使用,是给编译器看的,以免ClassCastException的出现。与此同时,为了提高效率,编译过后的class会主动擦除之前泛型信息。
     泛型的使用场景一般是集合,未定义泛型与定义泛型的集合的差别:
	//没有使用泛型的List集合
	public void noGenerics(){
		List list = new ArrayList<>();
		list.add(new Date());
		Date myDate = (Date) list.get(0);
		System.out.println(myDate);
	}
	//使用了泛型的List集合
	public void haveGenerics(){
		List<Date> list = new ArrayList<Date>();
		list.add(new Date());
		Date myDate = list.get(0);
		System.out.println(myDate);
	}
从上述代码可以看出,未使用泛型的集合,当对象存入集合之后,取出对象时,并不知道其对象是何种类型,所以加了一个强转的动作。而使用泛型的方便之处在于其出的对象就是原本定义的泛型类型,不需要进行强转,减少了出错的可能性。

自定义泛型:泛型要先声明,后使用在方法修饰词后声明<T>,或者声明多个<T,E,K>,如果多个方法都使用到了泛型,可以直接在类名上声明泛型<T>或者<T,E,K>,如public class HelloWorld<T,E> { ...},在类上声明的泛型,在静态方法中是无法使用的。

import java.util.Date;

public class GenericsTest {

	public static void main(String[] args) {
		printObject(new Date());
		printObject("java");
	}
	// 自定义泛型方法,泛型要先声明,后使用。
	public static <T> void  printObject(T t) {
		System.out.println(t.toString());
	}
	// 自定义泛型方法,多个泛型参数的使用
	public static <T, E, K> void printObject(T t, E e, K k) {
		//.....
	}
}

下面是如何使用泛型,将任意类型的数组进行内容颠倒:
public class Test {

	public static void main(String[] args) {
		Integer arr[] = { 2, 5, 7, 4, 8 };
		reverse(arr);
		for (int i : arr) {
			System.out.println(i);
		}
	}
	//使用泛型颠倒任意数组的内容。
	public static <T> void reverse(T arr[]) {
		int start = 0;
		int end = arr.length - 1;
		while (true) {
			if (start >= end) {
				break;
			}
			T temp = arr[start];
			arr[start] = arr[end];
			arr[end] = temp;
			start++;
			end--;
		}
	}
}



统信UOS系统盘空间不足?5分钟搞定扩容的图形化解决方案 本文提供统信UOS系统盘空间不足的图形化扩容解决方案,使用GParted分区编辑器在不丢失数据的情况下快速完成扩容。详细步骤包括准备工作、空间调整和执行验证,适合技术用户快速解决问题。 阅读详情

相关推荐

硬件作品3----STM32F103RCT6最小系统板MCU配置

电路未调试成功,目前刚打板,后续需要补充或者改版另行注明。

weixin_58364194的博客 5561

JAVA泛型-泛型方法的定义和使用

1.泛型方法的定义和语法 1.1 定义 泛型方法 是在调用方法的时候指明泛型的具体类型。 【泛型方法 能够使方法独立于类的处理指定的类型。】 1.2 语法 修饰符 <T,E,…> 返回值类型 方法名(形参列表){ 。。。。。。 } 修饰符与返回值类型中间的 泛型标识符 <T,E,…>,是 泛型方法的标志,只有这种格式声明的方法才是泛型方法。 泛型方法声明时的 泛型标识符 <T,E,…> 表示在方法可以使用声明的泛型类型。 与泛型类相同,泛型标识符可以是任意类

northcastle的博客 6万+

瑞芯微RV1126平台人脸识别模型转换实战:从ONNX到RKNN的完整流程

本文详细介绍了在瑞芯微RV1126平台上,将人脸识别模型从ONNX格式转换为RKNN格式的完整实战流程。内容涵盖模型结构分析、RKNN-Toolkit环境搭建、量化数据集准备、核心转换脚本编写与参数解析,以及在设备端的部署测试与性能调优,旨在帮助嵌入式AI开发者高效完成模型转化,提升边缘设备上的人脸识别应用部署效率。

o5p6q的博客 570

泛型的定义与使用

泛型的定义与使用 泛型,用来灵活地将数据类型应用到不同的类、方法、接口当中。 将数据类型作为参数进行传递。 定义和使用含有泛型的类 定义格式: 修饰符 class 类名<代表泛型的变量>{} 例如,API中的ArrayList集合: class ArrayList<E>{ public boolean add(E e){ } public E get(int index){ } .... } `使用泛型:即什么时候使用泛型就确定泛型的类型(重点) 在创

Liamcsl的博客 6389

CELF(Cost-Effective Lazy Forward selection)具有成本效益的惰性前向选择算法

CELF(Cost-Effective Lazy Forward selection)算法解析      引言:在社交网络影响力最大化问题的求解过程中,我们往往需要去选择一些目标种子结点作为信息初始传播的源头。贪婪算法在传播效果上的解决可以达到影响的最大化,但是在时间复杂度上面显得确十分糟糕。为此CELF算法应势而生,CELF算法利用了函数次模性的特点,在第一轮选择种子结点时,计算网络中所有节点的边际收益,但将在之后的过程中,不再做网络节点边际收益的重复计算,这相对于传统的贪婪算法,将在时间上得到非常明显的

hahaxq的博客 2477

从谱峰搜索到多项式求根:Root-MUSIC算法原理与MATLAB实践

本文深入解析Root-MUSIC算法在阵列信号处理中的原理与应用,通过多项式求根替代传统MUSIC算法的谱峰搜索,显著提升计算效率和精度。文章详细介绍了算法核心思想、MATLAB实现步骤及工程优化技巧,帮助读者掌握这一高效的DOA估计方法。

weixin_30832143的博客 80

泛型方法的定义和使用_泛型( Generic )

泛型(Generic)1. 泛型概述泛型是一个未知的, 不确定的数据类型. 比如ArrayList 中的E, 就是一个未知的不确定的数据类型, 那么他就是一个泛型泛型虽然是一个未知的, 不确定的数据类型, 但他不是一直未知, 一直不确定当我们使用这个类的时候, 会指定这个泛型的类型. 比如ArrayList , ArrayList 泛型可以省略, 如果泛型省略, 相当于泛型是Object. ...

weixin_39865625的博客 2389

USB3.0 Type-B连接器SSTX/SSRX信号定义常见错误与硬件设计避坑指南

本文详细解析了USB3.0 Type-B连接器中SSTX/SSRX信号的定义标准与常见设计错误。针对连接器厂商图纸可能出现的信号标识错误,提供了实用的排查方法和硬件设计避坑指南,帮助工程师避免因引脚定义颠倒导致的通信降级或故障,确保USB3.0高速传输的稳定性。

gg901的博客 1266

自定义泛型方法(Generic Method

 一、自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: 复制代码 void MyFunc&lt;T&gt;() //声明具有一个类型参数的泛型方法 {     Type genericType = typeof(T); //在泛型方法体内部获取类型参数的类型信息     //do… } //调用泛型方法 MyFunc&lt;int&gt;(); 复制代码  ...

li123128的博客 1万+

两层板如何做阻抗控制呢

两层板如何做阻抗控制呢? 这个问题可能很多人都会碰到,有的人在此等需要做阻抗控制的情况都选择做多层板。诚然,多层板在阻抗控制,EMC等等方面都有着天然的优势。然而,在价格上和周期上,两层板就有着绝对优势了。 对于成本非常敏感而又不是太复杂的产品,尽管对于我们硬件工程师而言,有一堆的理由要求使用多层板。然而在面对毛都不懂的老板“别人能做,你为什么不能做?”这个问题时只得低下我们高傲的头颅。 好...

weixin_42005993的博客 2万+

Stable Diffusion 模型分享:Beautiful Realistic Asians(美丽真实的亚洲人)

Beautiful Realistic Asians(BRA)模型是由作者自己训练而成的一个独立模型,它是一个真实模型,并且是一个针对亚洲人训练的模型,可以生成非常漂亮的亚洲小姐姐。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者文件名称文件大小1.99GB。

水滴的博客 2157

【Java】自定义泛型类

自定义泛型类 (1) 语法:Class 类名<T, R…>{//…表示可以有多个泛型成员},T,R和M为泛型的标识符,一般是单个大写字母。 (2) 使用注意事项: ① 普通成员(属性、方法)可以是使用泛型; ② 使用泛型的数组,不能初始化; ③ 静态方法中不能使用类的泛型,因为静态是和类相关的,在类加载时,对象还没有创建,所以,如果静态方法和静态属性使用了泛型,JVM就无法完成初始化; ④ 泛型类的类型是在创建对象时确定的(因为创建对象时,需要指定确定类型);

dengmsjava的博客 5850

pycharm报错cannot start the IED:Error occurred during initialization of VMagent library failed...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1925

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

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

码农回顾 4761

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java高级之泛型、自定义泛型、通配符的使用

泛型:标签;Generic中药店:每个抽屉外面贴着标签超市购物架上很多瓶子,每个瓶子装的是什么,有标签如何自定义泛型结构:泛型类、泛型接口,泛型方法自定义泛型类 Order/*** @Description: 自定义的泛型类/*** ① 泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系* 下面例子中:类的泛型是 String ,泛型方法的泛型是 Integer,没有任何关系* ② 换句话说,泛型方法所属的类是不是泛型类都没有关系。

Arbicoral的博客 313

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用

文章目录泛型的概念集合中使用泛型自定义泛型结构泛型在继承上的体现通配符的使用 泛型的概念 集合容器类在设计阶段/声明阶段不能确定这个容器实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection<E>,ArrayList<E> 中<E>就是类

叶绿体不忘呼吸 583

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Java 16】泛型 - 集合中使用泛型、自定义泛型结构、泛型在继承上的体现、通配符

泛型泛型1 为什么要有泛型2 在集合中使用泛型3 自定义泛型3.1 泛型类、泛型接口3.2 泛型方法4 泛型在继承上的体现5 通配符的使用5.1 使用5.2 使用注意点5.3 有限制的通配符5.3.1 简述5.3.2 练习题6 泛型应用举例7 自定义泛型类的使用 泛型 1 为什么要有泛型 2 在集合中使用泛型 ArrayList<Integer> list = new ArrayList<>();//jdk7新特性, 类型推断 list.add(78); list.add

Wmiao 484

Java查漏补缺(13)泛型概述、使用泛型举例、自定义泛型结构、泛型在继承上的体现、通配符的使用

举例1:中药店,每个抽屉外面贴着标签举例2:超市购物架上很多瓶子,每个瓶子装的是什么,有标签举例3:家庭厨房中:Java中的泛型,就类似于上述场景中的标签。1、这种语法形式就叫泛型。的形式我们称为类型参数,这里的"类型"习惯上使用T表示,是Type的缩写。即:。:代表未知的数据类型,我们可以指定为,,等。类比方法的参数的概念,我们把,称为类型形参,将称为类型实参,有助于我们理解泛型这里的T,可以替换成K,V等任意字母。2、在哪里可以声明类型变量

一个写湿的程序猿 437

总结06 Java泛型体系,自定义各种泛型和限制泛型自定义范围,以及其应用和使用规则.

意味: 你可以在一个类/方法/接口/实现类的头部,以’’ / ‘’ / ‘’ / ''等字母,将其泛型定义为一个其调用处所传递过来的泛型,这样一来,‘类/方法/接口/实现类’就变得更灵活化了. 而这个字母,统称为"自定义泛型字母"或"自定义泛型标识符". 可以自由地对某个类/方法/接口/实现类传递你想传递的参数类型,比如你有时要传递String类型,有时要传递Integer类型,有时又要传递对象类...

硬核编程乐乐的博客 656

Java 自定义泛型结构(泛型类、泛型接口和泛型方法)说明和使用举例

自定义泛型结构 package www.bh.c.genetest; //自定义泛型类 public class Test2<E> { String testName; int testAge; //类的内部结构就可以使用类的泛型 E testT; public Test2() { } public Test2(String testName, int testAge, E testT) { t

insist_to_learn的博客 427

Java泛型:使用泛型、泛型应用、自定义泛型、泛型继承、泛型通配符

Java泛型:使用泛型、泛型应用、自定义泛型、泛型继承、泛型通配符

qq_43265673的博客 1596

Java面向对象之自定义泛型 和 JUnit的使用

文章目录1、自定义泛型1.1、自定义泛型类1.2、小练习1.3、自定义泛型接口 1、自定义泛型 1.1、自定义泛型类 package generic; import java.util.Arrays; @SuppressWarnings({"all"}) public class CustomGeneric_ { public static void main(String[] args) { // T=Double, R=String, M=Integer

一切随心走的博客 593

java自定义泛型的使用

java自定义泛型的使用。

m0_71917549的博客 188

Java泛型-泛型作用+泛型在各种数据结构中的使用+自定义泛型

文章目录1. 概念2. 为什么要使用泛型(Generic)2.1 在ArrayList中使用泛型2.2 在HashMap中使用泛型3. 自定义泛型结构3.1 泛型类与泛型接口3.2 泛型类的子类3.3 自定义泛型类/接口 仍需注意的点3.5 泛型方法 1. 概念 所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时〈例如,继承或实现这个接口,用这个类型声明变量、创建对象时) 确定〈即传入实际的类型参数,也称为类型实参) 。

weixin_45791318的博客 616

java 自定义泛型方法_Java中自定义泛型方法的使用

在学习java的过程中,我们常常会遇到泛型方法,泛型方法使得该方法能独立于类而产生变化。下面,我们可以写一个泛型方法,使其方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。以下是一个基本的指导原则:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使事情更清楚明白。...

weixin_39580748的博客 777
上一篇: java关于可变参数的使用
下一篇: JAVASCRIPT学习笔记(1)
Sweeter
博客等级 码龄14年 81粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值