Java---泛型讲解

文章目录

    • 1. 泛型类
    • 2. 泛型方法
    • 3. 泛型接口
    • 4. 类型通配符
    • 5. 可变参数
    • 6. 可变参数的使用


1. 泛型类

 1. 格式:修饰符 class 类名 <类型>{ }。例如:public class Generic <T>{ }

 2. 代码块举例:

public class Generic <T>{private T t;public T getT() {return t;}public void setT(T t) {this.t = t;}
}public class Demo {public static void main(String[] args) {Generic<String> g1=new Generic<String>();//第二个String可以不写g1.setT("张三");System.out.println(g1.getT());//张三Generic<Integer> g2=new Generic<>();g2.setT(18);System.out.println(g2.getT());//18}
}

2. 泛型方法

 1. 格式:修饰符 <类型> 返回值类型 方法名(类型, 变量名){ }。例如:public <T> void show(T t){ }

 2. 代码块举例:

public class Generic{public <T> void show(T t){System.out.println(t);}
}public class Demo {public static void main(String[] args) {Generic g=new Generic();g.show("张三");g.show(18);g.show(13.14);}
}

3. 泛型接口

 1. 格式:修饰符 interface 接口名 <类型>{ }。例如:public interface Generic<T>{ }

 2. 代码块举例:

public interface Generic <T>{void show(T t);
}public class GenericImp <T> implements Generic<T> {@Overridepublic void show(T t) {System.out.println(t);}
}public class Demo {public static void main(String[] args) {Generic<String> g1=new GenericImp();g1.show("张三");Generic<Integer> g2=new GenericImp();g2.show(18);}
}

4. 类型通配符

在这里插入图片描述

import java.util.ArrayList;
import java.util.List;public class Demo {public static void main(String[] args) {List<?> list1=new ArrayList<Object>();List<?> list2=new ArrayList<Number>();List<?> list3=new ArrayList<Integer>();List<? extends Number> list4=new ArrayList<Number>();List<? extends Number> list5=new ArrayList<Integer>();List<? super Number> list6=new ArrayList<Number>();List<? super Number> list7=new ArrayList<Object>();}
}

5. 可变参数

:先看看比较差的效果

在这里插入图片描述

 1. 可变参数:又称参数个数可变,用作方法的形参出现,那么方法的参数个数就是可变的了。

 2. 格式:修饰符 返回值类型 方法名(数据类型... 变量名){ }。例如:public static int sum(int... a){ }

 3. 代码块举例:

public class Demo {public static void main(String[] args) {System.out.println(sum(10,20,30));//60System.out.println(sum(10,20,30,40));//100}public static int sum(int... a){int sum=0;for(int i : a){sum+=i;}return sum;}
}

6. 可变参数的使用

 1. Arrays工具类中有一个静态成员方法:Arrays.asList(),返回由指定数组支持的固定大小的列表。

 2. 代码块举例:

import java.util.Arrays;
import java.util.List;public class Demo {public static void main(String[] args) {List<String> list1= Arrays.asList("hello","Java","难学");//list.add("wordld");会报错的//list.remove("wordld");会报错的//list.set();不报错System.out.println(list1);//[hello, Java, 难学]}
}

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

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

相关文章

R语言生物群落(生态)数据统计分析与绘图实践技术

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂&#xff0c;涉及众多统计分析方法。本内容以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线&#xff0c;通过多个来…

使用arthas排查请求超时问题

现象 客户端调用服务时间出现偶尔超时现象 排查 因为服务已开启arthas&#xff0c;使用trace命令监控 $ trace com.lizz slowfun #cost > 1000 -n 10 监控com.lizz类中的slowfun方法&#xff0c;输出用时超过1000ms的记录&#xff0c;记录10条 Press CtrlC to abort. Aff…

除了增删改查,后端一定要学会这些!

刚工作 3、5 年的 Java 程序猿们&#xff0c;在日常工作中开始得心应手&#xff0c;基本上没有什么问题能难倒我们。 这个时候&#xff0c;我们很容易陷入迷茫当中&#xff0c;不知道怎么继续提升自己&#xff1f;怎么才能进阶资深、专家、总监。 知乎上更是有这么一个问题&a…

防火墙双机热备(HCIA)

目录 一、冗余分类 1、双机热备的产生 2、热备和冷备 二、VRRP VRRP注意事项 VRRP通告报文 三、VGMP 两种VGMP组 VGMP优先级 四、HRP 五、双机热备基本组网与配置 配置步骤 一、冗余分类 物理冗余&#xff1a;单设备改多设备&#xff0c;多线路连接。 网络冗余&a…

ssm420基于JavaEE的企业人事管理信息系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本企业人事管理信息系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

opencv的ChessboardCorner检测算法

1 findChessboardCorners 功能如下 The function attempts to determine whether the input image is a view of the chessboard pattern and locate the internal chessboard corners. The function returns a non-zero value if all of the corners are found and they are …

js 事件处理(addEventListener() 、removeEventListener())

可以直接在html标签中添加事件 例如&#xff1a; <div onclick"handleClick()">点击</div> 还可以为相关的节点元素添加一个特定的类名或id&#xff0c;以便于为该元素添加事件。可以通过on事件名称为元素添加事件监听。 var element document.getEle…

【2023年网络安全优秀创新成果大赛专刊】银行数据安全解决方案(天空卫士)

在2023年网络安全优秀创新成果大赛&#xff0c;成都分站中&#xff0c;天空卫士银行数据安全方案获得优秀解决方案奖。与此同时&#xff0c;天空卫士受信息安全杂志邀请&#xff0c;编写《银行数据安全解决方案》。12月6日&#xff0c;天空卫士编写的《银行数据安全解决方案》做…

山西电力市场日前价格预测【2023-12-23】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-23&#xff09;山西电力市场全天平均日前电价为505.77元/MWh。其中&#xff0c;最高日前电价为807.08元/MWh&#xff0c;预计出现在08:15。最低日前电价为332.81元/MWh&#xff0c;预计…

类文件结构

类文件结构 回顾一下字节码 在 Java 中&#xff0c;JVM 可以理解的代码就叫做字节码&#xff08;即扩展名为 .class 的文件&#xff09;&#xff0c;它不面向任何特定的处理器&#xff0c;只面向虚拟机。Java 语言通过字节码的方式&#xff0c;在一定程度上解决了传统解释型语…

认识“DRESS”:通过自然语言反馈与人类协调和互动的大视觉语言模型 (LVLM)

大视觉语言模型&#xff08;LVLM&#xff09;可以解释视觉线索并为用户交互提供简单的答复。这是通过巧妙地将大型语言模型 (LLM) 与大规模视觉指令微调融合来实现的。然而&#xff0c;LVLM 只需要手工制作或 LLM 生成的数据集即可通过监督微调 (SFT) 进行对齐。尽管将 LVLM 从…

数据分析基础之《numpy(4)—ndarry运算》

一、逻辑运算 当我们要操作符合某一条件的数据时&#xff0c;需要用到逻辑运算 1、运算符 满足条件返回true&#xff0c;不满足条件返回false # 重新生成8只股票10个交易日的涨跌幅数据 stock_change np.random.normal(loc0, scale1, size(8, 10))# 获取前5行前5列的数据 s…

派生类对基类成员的访问权限

私有成员&#xff1a; 在类作用域中可以被访问&#xff08;如在定义公有成员函数时&#xff0c;在其函数体中可以访问私有成员&#xff09; 在类作用域外&#xff0c;只能通过调用公有成员函数和友元函数来访问私有成员 公有成员&#xff1a; 在类作用域中可以被调用&#…

代码随想录算法训练营第十天 | 232.用栈实现队列、225. 用队列实现栈

232.用栈实现队列 题目链接&#xff1a;232.用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int…

《A++ 敏捷开发》-1 如何改善

1 如何改善 敏捷开发过程改进案例 5月 A公司一直专门为某电信公司提供针对客服、线上播放等服务。 张工是公司的中层管理者&#xff0c;管理好几个开发团队&#xff0c;有5位项目经理向他汇报。 他听说老同学的团队都开始用敏捷开发&#xff0c;很感兴趣&#xff0c;便参加了…

uniapp应用内升级

一、权限 manifest.json-APP权限设置需勾选&#xff1a; “<uses-permission android:name“android.permission.INSTALL_PACKAGES”/>”, “<uses-permission android:name“android.permission.REQUEST_INSTALL_PACKAGES”/>” 二、下载与安装 const downloadT…

Zookeeper集群搭建,四字命令监控,Leader选举原理以及数据如何同步

Java学习面试指南&#xff1a;https://javaxiaobear.cn 1、集群角色 Leader&#xff1a; 领导者。 事务请求&#xff08;写操作&#xff09;的唯一调度者和处理者&#xff0c;保证集群事务处理的顺序性&#xff1b;集群内部各个服务器的调度者。对于create、setData、delete…

抖店怎么运营?走通流程是关键!

我是电商珠珠 很多新手在入驻抖店的时候&#xff0c;都不知道前期怎么去运营。 运营的技巧很多&#xff0c;牵扯到很多细节&#xff0c;跑通流程是关键。 所以&#xff0c;今天就来给大家讲讲抖店的几个基本流程&#xff0c;只有将流程跑通了才能去更快的抠细节上的东西。 …

金融软件开发的 4 大挑战

与大多数行业一样&#xff0c;金融行业不断发展&#xff0c;同样给软件和解决方案开发带来了挑战。虽然这些挑战并不独特&#xff0c;也不新颖&#xff0c;但是随着时间的推移&#xff0c;金融体系越来越复杂&#xff0c;这些挑战的影响也越来越大。 在上一篇文章中&#xff0…

Jenkins自动化构建打包,部署

1.环境准备 上传jdk&#xff0c;maven和tomcat的包&#xff0c;解压到/usr/local下并配置环境变量。 配置jdk [rootserver04 ~]# vim /etc/profile.d/java.sh JAVA_HOME/usr/local/java export PATH$JAVA_HOME/bin:$PATH##加载环境变量 [rootserver04 ~]# source /etc/profi…