当前位置: 首页 > news >正文

JAVA 泛型的定义以及使用

泛型类

/*** <T> 为该类定义泛型,可以是一个或多个<T,...>*     定义的泛型可以在类中作为:*     类变量类型: T data*     类方法的入参以及返回类型  public void setData(T data),public T getData();次数以set,get方法举例,类的其他方法也是可以的* @param <T>* E:表示 Element,即元素,运用在集合中* K:表示 Key,即键* V:表示 Value,即值* N:表示 Number,即数值类型* T:表示 Type,即 Java 类型* ? :表示不确定的 Java 类型*/
public class Generic <T>{private String code;private String message;private T data;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}/*** 可以理解成泛型类的方法,但不能称之为泛型方法* 因为这里类定义了泛型<T> 所以该类中的方法可以使用泛型T* @return*/public T getData() {return data;}/*** 可以理解成泛型类的方法,但不能称之为泛型方法* @return*/public void setData(T data) {this.data = data;}/*** 此方法可以定义泛型类中,也可以定义在普通类中,即泛型方法不一定定义在泛型类中* <U,R> 即为为该方法定义了两个泛型U,R 定义的泛型可以作为方法的入参类型和返回类型,以及方法中的变量类型* 入参和返回类型可以是泛型或者具体的数据类型;例如testGeneric1,testGeneric2* @param u* @param r* @param <U>* @param <R>*/public <U,R> void testGeneric(U u,R r){// do something}/*** 返回类型为具体类型* @param u* @param r* @param <U>* @param <R>*/public <U,R extends Number> String testGeneric1(U u,R r){// do somethingreturn r.toString();}/*** 返回类型为泛型* @param u* @param r* @param <U>* @param <R>*/public <U,R extends Number> R testGeneric2(U u,R r){// do somethingreturn r;}
}

泛型接口

import java.util.List;/*** <I,R> 定义泛型I,R* 在该接口中可以使用泛型I,R作为接口方法的入参类型和返回值类型* @param <I>* @param <R>*/
public interface GenericService <I,R>{List<R> test1(I i);
}

泛型方法

/*** 此方法可以定义泛型类中,也可以定义在普通类中,即泛型方法不一定定义在泛型类中* <U,R> 即为为该方法定义了两个泛型U,R 定义的泛型可以作为方法的入参类型和返回类型,以及方法中的变量类型* 入参和返回类型可以是泛型或者具体的数据类型;例如testGeneric1,testGeneric2* @param u* @param r* @param <U>* @param <R>*/public <U,R> void testGeneric(U u,R r){// do something}

相关文章:

JAVA 泛型的定义以及使用

泛型类 /*** <T> 为该类定义泛型&#xff0c;可以是一个或多个<T,...>* 定义的泛型可以在类中作为&#xff1a;* 类变量类型&#xff1a; T data* 类方法的入参以及返回类型 public void setData(T data)&#xff0c;public T getData();次数以set&a…...

Day-08 基于 Docker安装 Nginx 镜像-负载均衡

1、反向代理后&#xff0c;自然而然就引出了负载均衡,下面简单实现负载均衡的效果; 2、实现该效果需要再添加一个 Nginx &#xff0c;所以要增加一个文件夹。 /home|---mutou|----nginx|----conf.d|----html|----conf.d2|----html3 1.创建 html3 文件夹&#xff0c; 新建 index…...

3、在 CentOS 8 系统上安装 PostgreSQL 15.4

PostgreSQL&#xff0c;作为一款备受欢迎的开源关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;已经存在了三十多年的历史。它提供了SQL语言支持&#xff0c;用于管理数据库和执行CRUD操作&#xff08;创建、读取、更新、删除&#xff09;。 由于其卓越的健壮性…...

sap 一次性供应商 供应商账户组 临时供应商 <转载>

原文链接&#xff1a;https://blog.csdn.net/xianshengsun/article/details/132620593 sap中有一次性供应商这个名词&#xff0c;一次性供应商和非一次性供应商又有什么区别呢&#xff1f; 有如何区分一次性供应商和非一次性供应商呢&#xff1f; 1 区分一次性供应商和非一次性…...

总结html5中常见的选择器

HTML5并没有引入新的选择器类型&#xff0c;它仍然使用CSS选择器来选择和操作HTML元素。HTML5中仍然可以使用CSS2和CSS3中定义的各种选择器。以下是HTML5中常见的选择器类型&#xff1a; 1. 元素选择器&#xff08;Element Selector&#xff09;&#xff1a;使用元素名称作为选…...

Java基础面试-JDK JRE JVM

详细解释 JDK&#xff08;Java Devalpment Kit&#xff09;java 开发工具 JDK是Java开发工具包&#xff0c;它是Java开发者用于编写、编译、调试和运行Java程序的核心组件。JDK包含了Java编程语言的开发工具和工具集&#xff0c;以及Java标准库和其他一些必要的文件。JDK中的…...

OpenCV实现图像傅里叶变换

傅里叶变换 dftcv.dft(img_float32,flagscv.DFT_COMPLEX_OUTPUT): flags:标志位&#xff0c;指定变换类型&#xff0c;cv.DFT_COMPLEX_OUTPUT会返回复数结果。 傅立叶变换&#xff0c;将输入的图像从空间域转换到频率域。 返回结果: 此函数返回一个复杂数值数组&#xff0c…...

快手新版本sig3参数算法还原

Frida Native层主动调用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81…...

Linux 安全 - LSM机制

文章目录 前言一、LSM起源二、LSM简介2.1 MAC2.2 LSM特征 三、Major and Minor LSMs3.1 Major LSMs3.2 Minor LSMs3.3 BPF LSM 四、LSM 框架五、LSM Capabilities Module六、LSM hooks 说明参考资料 前言 在这两篇文章中介绍了 Linux 安全机制 Credentials &#xff1a; Linu…...

uni-app:实现简易自定义下拉列表

效果 代码 <template><view><view class"dropdown-trigger" tap"showDropdown">{{ selectedItem }}</view><view class"dropdown-list" v-if"showList"><view class"dropdown-item" v-f…...

排序算法——直接插入排序

一、介绍 插入排序就是将前两个元素排好&#xff0c;再将第三个元素通过与前边的元素比较后插入适当的位置&#xff0c;再将第四个元素插入&#xff0c;不断重复插入与前边元素比较的操作&#xff0c;直到将元素都排列好。 演示如下&#xff1a; 视频演示&#xff1a;…...

手动抄表和自动抄表优缺点对比

随着科技的发展&#xff0c;自动抄表技术已经越来越成熟&#xff0c;被广泛应用于各个领域。然而&#xff0c;手动抄表在一些特定场景下仍然具有一定的优势。本文将从手动抄表和自动抄表的优缺点入手&#xff0c;对比分析它们的应用场景和使用价值。 1.成本低&#xff1a;手动抄…...

HiSilicon352 android9.0 emmc添加新分区

添加新分区 从emmc中单独划分出一个分区&#xff0c;用来存储相关数据&#xff08;可用于存储照片&#xff0c;视频&#xff0c;音乐和文档等&#xff09;或者系统日志log&#xff0c;从而不影响到其他分区。 实现方法&#xff1a; device/hisilicon/Hi3751V350/etc/Hi3751V3…...

networkX-04-查找k短路

文章目录 1.构建图2.使用networkX查找最短路径3.自己构建方法 教程仓库地址&#xff1a;github networkx_tutorial import networkx as nx import matplotlib.pyplot as plt1.构建图 # 创建有向图 G nx.DiGraph()# 添加带权重的边 edges [(0, 1, 1), (0, 2, 2), (1, 2, 1), …...

Linux虚拟机搭建RabbitMQ集群

普通集群模式&#xff0c;意思就是在多台机器上启动多个 RabbitMQ 实例&#xff0c;每台机器启动一个。创建的 queue&#xff0c;只会放在一个 RabbitMQ 实例上&#xff0c;但是每个实例都同步 queue 的元数据&#xff08;元数据可以认为是 queue 的一些配置信息&#xff0c;通…...

C之fopen/fclose/fread/fwrite/flseek

一、C中文件操作简介 c中的文件操作大致和linux的文件操作类似&#xff0c;但是毕竟是不同的API&#xff0c;所以会有些差异。部分差异会在下面的案例中体验 二、fopen open的参数有两个一个是文件名&#xff0c;一个是模式选择&#xff0c;不同open函数&#xff0c;open中的模…...

3D机器视觉:解锁未来的立体视野

原创 | 文 BFT机器人 机器视觉领域一直在不断演进&#xff0c;从最初的二维图像处理&#xff0c;逐渐扩展到了更复杂的三维领域&#xff0c;形成了3D机器视觉。3D机器视觉技术的涌现为计算机系统带来了全新的感知和理解能力&#xff0c;这一领域的发展正日益受到广泛关注。本文…...

大端字节序存储 | 小端字节序存储介绍

为什么存储的顺序有些变动呢&#xff1f; 大小端的介绍 我们在创建变量时&#xff0c;操作系统就会给你分配空间&#xff0c;比如你创建了【short/int/double/float】的变量&#xff0c;这些变量的类型都是大于1个字节的&#xff0c;操作系统会根据你这个变量的类型&#xff…...

ASP.Core3.1 WebAPI 发布到IIS

本篇文章简述如何在IIS中发布你的.Core 程序 1.打包 首先你要打包好你程序&#xff0c;如果你是Visual Studio开发的程序&#xff0c;那你右击你的项目点击发布 如果你是Visual Code 开发的&#xff0c;那你在你的终端切换到你的目录然后执行命令 dotnet publish --config…...

MyBatisPlus属性自动填充和乐观锁插件+查询删除操作+整合SpringBoot出现问题解决

属性字段自动填充 一、实体类和数据表添加两个字段&#xff08;属性&#xff09; 表&#xff1a;create_tiem/update_time 实体类&#xff1a;createTime/updateTime 二、实体类中属性进行注解添加 TableField(fillFieldFill.INSERT) private Date createTime;TableField(f…...

别再手动埋点了!用OpenTelemetry Operator在K8s里给Java应用自动注入链路追踪(附完整YAML)

零代码改造&#xff1a;OpenTelemetry Operator在K8s中实现Java应用全自动观测 当微服务架构遇上云原生环境&#xff0c;可观测性成为工程团队的生命线。但传统埋点方案需要侵入业务代码、增加维护成本&#xff0c;这与快速迭代的DevOps理念背道而驰。本文将揭示如何通过OpenTe…...

Cosmos-Reason1-7B部署教程:Docker镜像免配置+7860端口快速启用

Cosmos-Reason1-7B部署教程&#xff1a;Docker镜像免配置7860端口快速启用 1. 项目概述 Cosmos-Reason1-7B是NVIDIA推出的7B参数多模态视觉语言模型(VLM)&#xff0c;专注于物理理解和思维链推理能力。作为Cosmos世界基础模型平台的核心组件&#xff0c;它能够处理图像和视频…...

ROS2开发避坑:用CycloneDDS配置文件解决本地回环通信中断问题(附完整XML)

ROS2通信稳定性实战&#xff1a;CycloneDDS深度配置指南 当你在机器人开发过程中遭遇节点间通信时断时续的问题&#xff0c;那种感觉就像在暴雨天试图用对讲机协调团队——关键指令总在最重要时刻丢失。本文将揭示如何通过CycloneDDS的精细配置&#xff0c;在硬件网络不稳定的…...

Ubuntu 20.04 下 Zotero 文献管理神器:从安装到插件配置的完整避坑指南

Ubuntu 20.04 下 Zotero 文献管理神器&#xff1a;从安装到插件配置的完整避坑指南 第一次在Linux环境下配置文献管理工具时&#xff0c;我盯着终端里密密麻麻的命令行输出&#xff0c;突然意识到学术研究的数字化工具链竟如此脆弱。直到遇见Zotero&#xff0c;这款跨平台的开源…...

如何将 iQOO 手机备份到Mac

iQOO是vivo旗下的智能手机品牌&#xff0c;以其强劲的性能、出色的游戏体验和极具竞争力的价格而闻名。它深受那些希望以合理价格购买高性能Android手机的用户欢迎。然而&#xff0c;由于缺乏官方的 macOS 管理工具&#xff0c;许多用户发现将 iQOO 手机备份到Mac并非易事。幸运…...

大麦智能抢票系统:告别手速极限的终极解决方案

大麦智能抢票系统&#xff1a;告别手速极限的终极解决方案 【免费下载链接】ticket-purchase 大麦自动抢票&#xff0c;支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票而烦恼吗&…...

别再只会看原理图了!用Multisim仿真带你深入理解运放的“虚短虚断”与反馈

用Multisim仿真破解运放"虚短虚断"的底层逻辑 在电子电路设计中&#xff0c;运算放大器就像一位沉默的魔术师&#xff0c;用"虚短"和"虚断"两个基本概念演绎着各种精妙的信号处理戏法。但很多工程师在学习阶段只是机械记忆这两个术语&#xff0c…...

代码驱动图表:重新定义技术可视化的开源工具革命

代码驱动图表&#xff1a;重新定义技术可视化的开源工具革命 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

Graphormer部署教程:/etc/supervisor/conf.d/graphormer.conf配置解析

Graphormer部署教程&#xff1a;/etc/supervisor/conf.d/graphormer.conf配置解析 1. 项目介绍 Graphormer是一种基于纯Transformer架构的图神经网络模型&#xff0c;专门为分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测而设计。该模型在OGB、PCQM4M等…...

别再手动改稿了!用LaTeX的soul包搞定论文批注(删除线/高亮/引用兼容)

LaTeX高效批注指南&#xff1a;用soul包实现学术协作的优雅排版 当导师的红色批注铺满论文初稿&#xff0c;或是合作者发来二十处修改意见时&#xff0c;大多数研究者都会面临一个共同困境——如何在保留原始内容的同时清晰标记修改痕迹&#xff1f;传统的手动添加删除线或高亮…...