泛型 ETKV

文章目录

    • 泛型类
    • 泛型方法
    • 泛型接口
    • 泛型通配符
    • 泛型的限定

常见的泛型标识符:
E:Element
T:Type
K:键值对的键
V:键值对的值

不同的泛型,在何时确定为具体?

泛型类

创建对象时,确定具体类型

public class TimeTest {public static void main(String[] args) {Student<Integer> student = new Student<>();}
}class Student<E> {private E e;public E getE() { return e; }public void setE(E e) { this.e = e; }
}

泛型方法

位置:传参括号中
1.非静态方法:方法内部的泛型,会根据类的泛型去匹配。
同上public void setE(E e) { this.e = e; }

2.静态方法:静态方法中的泛型,必须声明出自己独立的泛型。在调用方法时,才确认为具体。

public class TimeTest {public static void main(String[] args) {String[] arr1 = {"张三", "李四", "王五"};Integer[] arr2 = {11, 22, 33};Double[] arr3 = {11.1, 22.2, 33.3};printArray(arr1);printArray(arr2);printArray(arr3);}public static <T> void printArray(T[] arr) {System.out.print("[");for (int i = 0; i < arr.length - 1; i++) {System.out.print(arr[i] + ", ");}System.out.println(arr[arr.length - 1] + "]");}
}

泛型接口

  1. 实现类时,确定具体类型
  2. 实现类依旧没有指定具体类型,让接口的泛型跟着实现类的泛型,创建对象时才为具体。
public class TimeTest {public static void main(String[] args) {InterAImpl a = new InterAImpl();InterBImpl<String> b = new InterBImpl<>();}
}interface Inter<E> {void show(E e);
}class InterAImpl implements Inter<String>{@Overridepublic void show(String s) { }
}class InterBImpl<E> implements Inter<E>{@Overridepublic void show(E e) { }
}

泛型通配符

?,任意类型
有异常的风险,不推荐

泛型的限定

? extends Employee:Employee及其以下的子类
? super Employee:Employee及其以上的父类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/195889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java:SpringBoot中HttpServletRequest对象获取客户端的请求参数

文档 https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html 代码示例 package com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;im…

《opencv实用探索·九》中值滤波简单理解

1、引言 均值滤波、方框滤波、高斯滤波&#xff0c;都是线性滤波方式。由于线性滤波的结果是所有像素值的线性组合&#xff0c;因此含有噪声的像素也会被考虑进去&#xff0c;噪声不会被消除&#xff0c;而是以更柔和的方式存在。这时使用非线性滤波效果可能会更好。中值滤波是…

【华为OD题库-061】关联子串-java

题目 给定两个字符串str1和str2&#xff0c; str1进行排列组合&#xff0c;只要有一个为str2的子串则认为str1是str2的关联子串&#xff0c;请返回子串在str2的起始位置&#xff0c;若不是关联子串则返回-1。 示例1 输入输出示例仅供调试&#xff0c;后台判题数据一般不包含示例…

未势能源亮相中国燃料电池汽车大会,助力京津冀“氢能高速”

2023年12月1日&#xff0c;首届中国燃料电池汽车大会在大兴国际氢能示范区举办。大会由北京市经济和信息化局、北京市大兴区人民政府、中国汽车技术研究中心有限公司共同主办。中国科学技术协会主席万钢作主旨报告&#xff0c;国务院国资委副主任苟坪&#xff0c;中国科学院院士…

CO11N报工时,在填入返工数量后自动产生返工工单

本文档主要说明一种返工流程,当工人报工时,填写返工数量、变式原因即可启动触发点自动创建返工订单,被创建的反工订单为无料号生产订单,且关联报工订单。涉及系统功能点包括状态参数 一、 后台配置 1).用户状态参数:BS02(SPRO-生产-商店低价控制-主数据-订单-定义状态…

无公网IP环境固定地址远程SSH访问本地树莓派Raspberry Pi

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…

Java中synchronized与Lock的区别与使用

Java中synchronized与Lock的区别与使用 当我们谈论Java多线程编程时&#xff0c;线程同步是一个避免资源竞争和保证线程安全的关键概念。在Java中&#xff0c;主要有两种机制来实现线程同步&#xff1a;synchronized关键字和Lock接口。这篇博客将详细介绍这两种同步机制的区别…

专业做除甲醛净化器的品牌 甲醛净化器什么牌子最好用

室内产生了超标的甲醛&#xff0c;大部分都会采取选择甲醛空气净化器来去除&#xff0c;甲醛净化器逐渐成为室内清除甲醛的主力&#xff0c;在选择甲醛净化器时&#xff0c;人们常常会被市场上琳琅满目的空气净化器品牌所迷惑&#xff0c;各品牌和型号都声称自己最好&#xff0…

C++构造函数与析构函数介绍

介绍 C中的构造函数和析构函数是类的特殊成员函数&#xff0c;用于初始化和清理对象。 构造函数是在创建对象时自动调用的函数。它的主要目的是初始化对象的状态。构造函数的名称与类的名称相同&#xff0c;并且它不返回任何类型&#xff0c;也没有参数。析构函数与构造函数相…

freeRTOS创建任务

一.动态创建任务 1.函数xTaskCreate() BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针, 任务函数const char * const pcName, // 任务的名字const configSTACK_DEPTH_TYPE usStackDepth, // 栈大小,单位为word,10表示40字节void * const pvParameters, // …

CCFCSP试题编号:202006-2试题名称:稀疏向量

不断匹配相乘累加就好了 #include<iostream> #include<vector> #include <utility> using namespace std;int main() {int n;int a, b;long long result0; // 使用 long long cin >> n >> a >> b;vector<pair<int, int> > u…

删除不掉node_modules的办法

全局安装 rimraf 模块到系统下&#xff1a; npm install -g rimraf CD 到相应文件夹&#xff0c;执行如下指令&#xff1a; rimraf node_modules

Python面向对象⑤:多态【侯小啾Python基础领航计划 系列(二十三)】

Python面向对象⑤:多态【侯小啾Python基础领航计划 系列(二十三)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

pta模拟赛(7-21 求A除以B的商与余数、7-22 一元多项式求导、7-23 一元多项式的乘法与加法运算、7-24 多项式A除以B、7-25 人以群分)

7-21 求A除以B的商与余数 计算A/B的商和余数&#xff0c;其中被除数A是不超过1000位的非负整数&#xff0c;除数B是一个不超过229的任意非负整数。要求你输出商Q和余数R。 输入格式: 输入在一行中依次给出 A 和 B&#xff0c;中间以空格分隔。 输出格式: 在一行中依次输出 Q 和…

minio服务端搭建使用

一.minio文件服务搭建 非docker环境部署(Linux部署) 1.官网下载安装包&#xff1a;MinIO | Code and downloads to create high performance object storage 2、上传安装包文件到目录(这个可以自由选择) /home/minio/ 3、为minio添加权限 sudo chmod x minio 4、 创建mini…

开关柜无线测温系统

开关柜无线测温系统是一种基于无源无线通信技术的开关柜温度监测系统&#xff0c;依托电易云-智慧电力物联网实现高压开关柜接头温度的在线监测和报警。该系统通过在开关柜内部安装无线温度探测器&#xff0c;实时监测开关柜内部的接头、电缆接头、母排等的温度监控&#xff0c…

深入理解 Go 语言中的接口(interface)

一、GoLang 接口的定义 1、GoLang 中的接口 在 Go 语言中接口&#xff08;interface&#xff09;是一种类型&#xff0c;一种抽象的类型接口&#xff08;interface&#xff09;定义了一个对象的行为规范&#xff0c;只定义规范不实现&#xff0c;由具体的对象来实现规范的细节…

0年费、0月费、免kyc,支持ChatGPTPlus充值虚拟卡

虚拟卡通常是指银行卡的虚拟卡&#xff0c;是在银行卡的基础上的银联、VISA、万事达卡BIN码衍生出的一种虚拟账户。虚拟卡一般都是用于网络上无卡支付&#xff0c;因此虚拟卡都不会配备相应的实体卡片。银行卡的虚拟卡&#xff0c;在分类上与实体卡并无什么区别&#xff0c;也分…

JAVA 可执行文件格式

JAVA 可执行文件格式 springboot 程序使用 Maven PLugin插件编译时&#xff0c;可以生成可执行的 jar 和 war 程序。其核心原理是 spring-boot-loader 模块&#xff0c;详细原理如下 1 嵌套 JARS java 本身不支持任何标准的加载嵌套 jar 的方式&#xff0c;要解决该问题&…

探秘高级代理技术:SK5代理在网络安全中的应用

在当今数字化时代&#xff0c;网络安全和隐私保护日益受到重视。作为网络工程师和网络文章主编&#xff0c;我将为您介绍一种强大而高级的代理技术——SK5代理&#xff0c;并探讨其在网络安全、爬虫以及HTTP通信中的重要应用。 1. SK5代理简介 SK5代理是一种基于SOCKS5协议的…