【Java高级特性】java学习之旅25-泛型

1 电科院FTU检测标准学习笔记-外观检查 作者简介:本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验。 阅读详情

定义:

广泛定义的数据类型,定义一种不确定的数据类型

使用方式:

  1. 将泛型声明在类上:
/**
 * 在创建该类对象时可以指定泛型指代的数据类型,
 * 在这个类内部任意声明中都可以使用指代的数据类型
 */
 
 //在创建类后面指代泛型
 public class Class01<R> {
	
	//可以由类后面定义的泛型定义方法中泛型的数据类型
	public void hello(R value) {
		System.out.println(value);
	}
}

	@Test
	public void test2() {
		Class01<String> class01 = new Class01<>();
		//class01.hello(String value);
		//默认就变成了String类型的了
		class01.hello("hello");
	}
  1. 将泛型声明在方法上:
/**
 * 在使用方法传递参数的时候,根据实参的数据类型确定形参的数据类型,
 *这个泛型可以在整个方法内部去使用。
 */
 
 public class Class02 {
	//在返回值类型前加上泛型,在整个方法中都可以使用
	public <E> void hello(E value) {
		System.out.println(value instanceof String);
	}
}

	@Test
	public void test2() {
		Class02 class02 = new Class02();
		class02.hello("hello");//返回 true
		class02.hello(123);//返回false
	}
	
  1. 将泛型声明在接口上:
/**
 *在实现类声明实现接口时,指代泛型的基本数据类型,
 重写的所有方法 ,泛型将被改写成为具体的数据类型
 */
 
 //在接口上声明
 public interface Interface01<T extends Number> {
	
	public Number plus(T n1, T n2);
	public Number reduce(T n1, T n2);
	
	
}

public class Class03<T extends Number> implements Interface01<T> {

	@Override
	public Number plus(T n1, T n2) {
		return n1.doubleValue() + n2.doubleValue();
	}

	@Override
	public Number reduce(T n1, T n2) {
		return n1.doubleValue() - n2.doubleValue();
	}
}

public class Class04 extends Class03<Integer> {
	
}

	@Test
	public void test3() {
		Class04 class04 = new Class04();
		Number result = class04.plus(100, 123);
		System.out.println(result);
	}

泛型的通配符 ?

指代不确定的类型,作为引用类型指代对象的具体类型。

  • 无界通配符 ?
  • 上界通配符 ? extends Number
  • 下界通配符 ? super Integer

具体的可参照接口中泛型的声明

泛型的上界

T extends Number确定了泛型只能是Number类的子类或者自身

上万条对话白分析了?智能客服质检避坑指南:90%团队倒在这些误区 当前客服质检普遍存在投入产出失衡的现象,根源在于十大误区:过度关注单点技术指标而忽视端到端解决能力、僵化的话术模板限制AI应变、数据孤岛阻碍知识进化、盲目追求拟人化牺牲效率、传统整改机制跟不上机器速度等。破局需重构质检体系,包括建立决策树质检法、设计复杂问题测试集、构建实时数据闭环、重置AI专属评价指标、实施分钟级热修复机制等。关键在于将质检从被动纠错升级为主动赋能,通过根因分析、场景化反馈、标准化评分和数据驱动优化,打造"问题诊断-改进-验证" 阅读详情

相关推荐

ArcGIS小白必看:如何用3D Analyst工具将二维点线秒变三维模型(附详细步骤)

本文为ArcGIS初学者提供了利用3D Analyst工具将二维点、线数据快速转换为三维模型的完整指南。详细讲解了基于属性字段和数字高程模型(DEM)两种核心方法,并附上从数据准备、工具操作到三维场景可视化与问题排查的详细步骤,帮助用户轻松实现从平面到立体的空间数据建模。

nft7creator的博客 140

Java面试必备:Java泛型的作用与使用详解

Java泛型(Generics)是JDK 5.0引入的一个重要特性,它允许在定义类、接口和方法时使用类型参数(type parameters)。这种参数化类型的能力使得代码可以应用于多种数据类型,同时保持类型安全。

qq_58299462的博客 1838

23.网工入门篇--------介绍一下园区网典型组网架构及案例实践

园区网典型组网架构主要分为小型、中型、大型三种类型,以下是详细介绍及相关案例实践:

qq_31450765的博客 964

044-Java 泛型

在前面介绍了 Java 泛型的基本概念及使用场景后,本部分将讨论泛型的更高级特性、常见问题以及在实际项目中的最佳实践。在 Java 中,由于泛型类型在运行时被擦除,因此在反射中操作泛型会有特殊的限制。泛型参数是实例级别的,而静态变量是类级别的,因此无法在静态上下文中使用泛型类型。通过深入掌握泛型的特性和限制,可以编写更安全、更高效、可维护的 Java 程序。泛型方法允许在方法中定义类型参数,与类的类型参数无关。泛型的原始类型是泛型类没有指定类型参数时的类型。泛型可以结合工厂模式,用于创建类型安全的对象。

小宝哥Code的专栏 1070

MODIS 遥感数据批量下载(使用Cygwin)

MODIS 遥感数据批量下载(使用Cygwin)包含Cygwin的下载教程

weixin_45913084的博客 916

基于STM32的智能火灾报警系统设计:多传感器融合与远程控制实现

本文详细介绍基于STM32单片机的智能火灾报警系统设计,采用多传感器融合技术(烟雾、温度、火焰检测)实现高精度火灾识别。系统集成远程控制与手机APP监控,通过加权决策算法降低误报率,提供多级响应策略,确保火灾预警的准确性与可靠性。

u5v6w7的博客 1102

Java泛型

什么是泛型? 泛型就是参数化类型,它的作用就是把变量或者属性或者方法的参数或者方法的返回值等的类型看做是一个参数。这样就可以写出来通用的代码,让代码更加简洁。在使用的时候,传入真正的类型。这个过程类似于方法的形参和实参。 为什么要用泛型? 原因一:优化代码,让代码更简洁更通用。 例如:拿打印数组来说,可以定义一个工具类ArrayTool,ArrayTool提供打印数组的方法。 public cla...

qq_45979569的博客 302

WiFi信道状态信息 基于Intel 5300的CSI Tool 安装及使用(一)

经过半个月的坎坷安装过程,连Windows系统都没装过的本人终于颤颤巍巍把CSI TOOL装好了,下面记录一下适于我所使用设备的安装过程。设备:一台THINKPAD X201,一台师兄借的华硕主板的台式机首先,如果你和我一样对linux其实一窍不通的话,建议先反复看教程里的安装代码,照猫画虎很难一步实现的,中途一定会有这或那的问题需要解决,所以该了解的基础linux指令还是要了解,起码安装过程中的那些指令可以去查一查。.........

Silver_777的博客 2万+

Java泛型T使用教程

泛型非常适合用来创建自定义的数据结构,如链表、栈、队列等。​​示例:简单的泛型栈​​// 压栈// 弹栈// 查看栈顶元素// 判断栈是否为空// 使用示例// 输出: Second// 输出: First// 输出: 200Java泛型通过类型参数提供了强大的类型安全性和代码复用性,是现代Java编程不可或缺的一部分。​​泛型类和接口​​:允许在定义类和接口时使用类型参数,提高代码复用性​​泛型方法​​:可以在非泛型类中定义类型参数方法​。

Rysxt_的博客 1000

C++如何实时监测另一个进程是否已经退出?(附源码)

调用WaitForSingleObject实时监测目标进程是否已经退出

dvlinker的技术专栏 8275

128、点云配准与ICP:经典配准算法与深度学习配准

上周调试一台双臂协作机器人,左手持结构光相机扫描桌面上的随机堆叠工件,右手准备执行抓取。问题出在“对齐”这一步——相机扫描得到的点云和CAD模型点云之间差了大约15度的旋转,导致抓取姿态计算出来直接怼到桌面上。我第一反应是“ICP跑一下不就行了”,结果跑了三分钟,误差纹丝不动,甚至越迭代越发散。后来查了日志才发现,初始位姿给得太离谱,ICP直接掉进了局部最优。这个场景太典型了——很多人以为点云配准就是调个ICP库函数,实际工程里坑比想象中多得多。今天这篇笔记,咱们把点云配准这件事从头捋一遍。

sundong_81的博客 42

java泛型实例化_java基础-泛型举例详解

泛型泛型是JDK5.0增加的新特性,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。这种类型参数可以在类、接口、和方法的创建中,分别被称为泛型类、泛型接口、泛型方法。一、认识泛型在没有泛型之前,通过对类型Object的引用来实现参数的"任意化",但"任意化"带来的缺点是需要显示的强制类型转换,此种转换要求开发者对实际参数类型预知的情况下进行,对于强制转换错误的情况,编译器可能不会提示错...

weixin_39843215的博客 1373

【运动规划算法项目实战】Artificial Potential Field算法(附ROS C++代码)

在机器人行业中,路径规划是一个关键的任务,它涉及到如何让机器人在复杂的环境中安全而高效地移动。人工势场算法(Artificial Potential Field Algorithm)是一种常用的路径规划方法,它借鉴了物理学中的势能概念,通过模拟力的作用来引导机器人的移动。本文将详细介绍人工势场算法的原理、在路径规划中的应用、算法优缺点以及代码实现。人工势场算法基于两种势场:斥力场和引力场。斥力场使机器人远离障碍物,而引力场将机器人吸引到目标位置。

xiewf的博客 1万+

java c 泛型_Java 之 泛型的使用形式

泛型的使用形式有两种:1、泛型类/泛型接口2、泛型方法一、泛型类/接口下面先来看下 JDK1.5改写后的 ArrayList 类、Iterator 接口、Map的代码片段。从上面的代码中,可以看出在定义接口、类时指定类型形参,如上面的E、K、V。当使用这些集合时,就可以为E、K、V指定具体的类型实参。Demo:1 importjava.util.HashMap;2 importjava.util...

weixin_36254379的博客 218

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

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

Java 泛型(Generic)详解:类后面的尖括号 <T>

泛型允许在类、接口、方法中使用类型参数(Type Parameter),使得代码可以适用于多种数据类型,而不必为每种类型编写重复的代码。

JAVA领域优质创作者,基于分片网络查询方法专利发明者。 1514

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

泛型的知识点

泛型,定义在一对尖括号中,也是一个标识符,遵循大驼峰命名法。通常都是用一个大写字母。泛型通配符用?表示,代表不确定的类型,是泛型的一个重要组成。在调用时,表示我不关心具体类型。也可以使用通配符规定调用时,传入的类型的范围,即上边界,和下边界。//不管List集合里面装的是什么类型,只要传进来的是List集合就可以正常运行。ns.add(2L);ns.add(3L);运行结果:123123。

j2974500224的博客 634

SAP B1中文培訓教材_SDK

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

第二阶段:Java进阶技能①Java高级特性

本章深入讲解Java高级特性,包括泛型编程、反射机制、注解与枚举四大核心技术。通过丰富的代码示例和实际应用场景,帮助开发者掌握类型安全编程、动态编程、元数据处理和常量管理等高级技能,提升代码质量和开发效率

CodingPhilosophy的博客 1924

java 对象泛型 赋值

Java 对象泛型赋值的探索 在现代 Java 编程中,泛型(Generics)为开发者提供了一种在类、接口和方法中指定类型参数的方式。使用泛型可以提高代码的重用性、安全性和可读性。本文将深入探讨 Java 中对象泛型的赋值操作,并通过代码示例来说明其用法。 什么是泛型? 泛型允许我们在类或方法中定义可以接受各种数据类型的...

weixin_41272525的博客 304

深入理解Java中的泛型与类型安全

深入理解Java中的泛型与类型安全大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中的泛型和类型安全。泛型是Java的一个强大特性,它使得代码更加通用、灵活,同时保持了类型安全。1. 泛型概述1.1 什么是泛型泛型允许我们在定义类、接口或方法时,使用类型参数来替代具体...

weixin_30245667的博客 171

Java的高级特性

了解Java的高级特性,例如lambda表达式,流streams,方法引用,注解,反射Reflection,泛型Generics,异常处理,枚举enumerations,内部类,自动装箱与拆箱

WZX17307935391的博客 2899

泛型

泛型 概述:是一种把类型明确工作推迟到调用方法或创建对象时才确定的特殊类型 格式:<数据类型>,这里的数据必须是引用类型 好处: (1)避免了强制转换类型 (2)把运行期的问题提前到了编译期,因为泛型只在编译期有效,在运行期就擦除了 应用(以ArrayList为例) 泛型可以运用在类,接口和方法上 (1)泛型类 (2)泛型接口 (3)泛型方法 通配符 增强f...

weiii_的博客 132

集合 泛型 jdk新特性

文章目录ArrayList类案例:去除ArrayList中重复自定义对象元素案例:去除ArrayList中重复字符串元素Vector类LinkedList类案例:用LinkedList模拟栈数据结构的集合并测试泛型1.概述和基本使用2,泛型类,接口,方法的使用3,泛型通配符增强for循环案例:ArrayList存储自定义对象并遍历增强for版可变参数静态导入集合嵌套之ArrayList嵌套ArrayList案例:嵌套存储并遍历学生对象Arrays工具类的asList()方法的使用 ArrayList类 Ar

weixin_46685538的博客 574

Java进阶指南:常用基础类库与高级特性

数组的声明// 方式一:先声明,后初始化// 方式二:声明并初始化// 方式三:声明并赋值数组长度一旦确定,无法更改。数组索引从0开始,最大索引为length - 1。示例:数组的定义与初始化// 声明并初始化整型数组// 声明字符串数组,后续初始化// 输出数组元素二维数组的声明// 方式一:先声明,后初始化// 3行4列// 方式二:声明并初始化// 方式三:声明并赋值{1, 2, 3},{4, 5, 6},{7, 8, 9}

weidl001的博客 1413

Java高级特性 编程及实战

目录 序言 前言 第一章 集合框架和泛型 ··························································································· 1 任务1 查询标题 ·························································...

JavaDarren的博客 2547

javaSE___集合体系06___泛型

泛型一、泛型概述和基本使用1、我们举一个例子来看一下泛型的好处:2、我们举一个例子来看一下前后的泛型必须一致:二、ArrayList存储字符串和自定义对象并遍历泛型版 一、泛型概述和基本使用 A:泛型概述:java泛型其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 B:泛型好处 提高安全性(将运行期的错误转换到编译期) 省去强转的麻烦 C:泛型基本使用 <&g

weixin_42858422的博客 1166

Java入门到精通-23 泛型——类型安全的参数化编程

本文介绍了Java泛型的概念及其应用,主要内容包括: 为什么需要泛型 展示了未使用泛型时存在的类型安全问题 列举泛型的四大优势:类型安全、消除强制转换、代码复用和文档化 泛型类的使用 单类型参数示例(Box类) 多类型参数示例(Pair类) 实际应用:通用API响应类(ApiResponse) 泛型类的继承方式 泛型接口 基本泛型接口实现(Comparator) 实际应用:泛型DAO模式 文章通过代码示例展示了泛型如何提高类型安全性并简化代码,适用于Java 5及以上版本。泛型是Java实现参数化类型编程的

weixin_56693899的博客 296
上一篇: 【Java高级特性】java学习之旅24-Collections工具类
下一篇: 【Java高级特性】java学习之旅26-枚举
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值