【装包拆包----泛型】

文章目录

  • 装箱和拆箱
  • 泛型
  • 创建一个泛型数组
  • 泛型的上界
  • 泛型方法


装箱和拆箱

装箱:
把基本数据类型给到引用数据类型

    public static void main(String[] args) {//自动装包//第一种装包Integer c = 12;//第二种装包int a = 7;Integer b = a;//显示装包Integer aa = Integer.valueOf(10);}

拆箱:
把包装类型给到基本引用数据类型

    public static void main(String[] args) {//自动拆包Integer a = 10;int b = a;//显示拆包int aa = a.intValue();}

泛型

含义:泛型:就是适用于许多许多类型。
语法:
在这里插入图片描述
泛型只能接受包装类

创建一个泛型数组

实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值

//类名后的 <T> 代表占位符,表示当前类是一个泛型类
class MyArray<T>{//泛型数组public Object[] array =new Object[10];public void setArray(int pos,T val) {array[pos] = val;}public T getArray(int pos){return (T)array[pos];}
}
public class Test {public static void main(String[] args) {//类型后加入 <Integer> 指定当前类型MyArray <Integer> myArray = new <Integer>MyArray();myArray.setArray(0,7);myArray.setArray(1,10);int a = myArray.getArray(1);System.out.println(a);MyArray <String> myArray1 = new <String>MyArray();myArray1.setArray(0,"jiujiu");myArray1.setArray(1,"happy");String str = myArray1.getArray(1);System.out.println(str);}
}

注意:
1.不能new一个泛型类型的数组

泛型的上界

//T只能是Number或者Numberd的子类
class FanXing<T extends Number>{}
class Person{
//父类
}
class Student extends Person{//子类
}//T只能是Person或者Person的子类
class FanXing2<T extends Person>{}
public class Test {FanXing <Integer> fanXing = new <Integer> FanXing();FanXing <Double> fanXing2 = new <Integer> FanXing();//报错FanXing <String> fanXing3 = new <Integer> FanXing();//String不是Numberd的子类FanXing2 <Student> fanXing4 = new <Student> FanXing2();FanXing2 <Person> fanXing5 = new <Person> FanXing2();}

泛型方法

class Person implements Comparable<Person>{@Overridepublic int compareTo(Person o) {return 0;}
}class Alg<T extends  Comparable<T>>{public T findMaxValue(T[] array){T max = array[0];for (int i = 0; i < array.length; i++) {if (max.compareTo(array[i])<0){max = array[i];}}return max;}}//泛型方法
class Alg2{public<T extends  Comparable<T>>T findMaxValue(T[] array){T max = array[0];for (int i = 0; i < array.length; i++) {if (max.compareTo(array[i])<0){max = array[i];}}return max;}}
public class Test {public static void main(String[] args) {Alg<Integer> alg = new Alg<Integer>();Integer[] integer={1,2,3,4,5,6,7};Integer ret = alg.findMaxValue(integer);System.out.println(ret);//泛型方法实例化Alg2 alg2 =new Alg2();Integer[] integer1 = {1,2,3,4,5,6,7,8};Integer ret2 = alg2.findMaxValue(integer1);System.out.println(ret2);}
}

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

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

相关文章

thinkphp8 数据库的连接

账号&#xff1a;root 密码&#xff1a;自己设置 http://localhost:888/index.php当出现这个并且能登陆就算成功了。 回到项目config/database.php .env 里面&#xff08;如果已经.example.env 改成了.env,则改下边&#xff0c;db_name改成你的数据库表名&#xff09; 多个…

【轨道机器人】实现Windows与下位机串口通信(未完成)

方案一&#xff1a;QT&#xff0c;编写类似串口调试助手的APP&#xff0c;连接上硬件&#xff0c;qt有个好像是串口缓存函数&#xff0c;可以防止占用CPU。&#xff08;缺点qt估计要时间学&#xff09; 方案二&#xff1a;利用vscode、C&#xff0c;编写一个可执行exe文件&…

JAVA G1垃圾收集器介绍

为解决CMS算法产生空间碎片和其它一系列的问题缺陷&#xff0c;HotSpot提供了另外一种垃圾回收策略&#xff0c;G1&#xff08;Garbage First&#xff09;算法&#xff0c;通过参数-XX:UseG1GC来启用&#xff0c;该算法在JDK 7u4版本被正式推出&#xff0c;官网对此描述如下&am…

2023年【北京市安全员-B证】试题及解析及北京市安全员-B证证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证试题及解析根据新北京市安全员-B证考试大纲要求&#xff0c;安全生产模拟考试一点通将北京市安全员-B证模拟考试试题进行汇编&#xff0c;组成一套北京市安全员-B证全真模拟考试试题&#xff0c;学员…

QT中的鼠标事件

鼠标追踪打开后进去一动就显示

Datawhale智能汽车AI挑战赛

1.赛题解析 赛题地址&#xff1a;https://tianchi.aliyun.com/competition/entrance/532155 任务&#xff1a; 输入&#xff1a;元宇宙仿真平台生成的前视摄像头虚拟视频数据&#xff08;8-10秒左右&#xff09;&#xff1b;输出&#xff1a;对视频中的信息进行综合理解&…

新版软考高项试题分析精选(二)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1、除了测试程序之外&#xff0c;黑盒测试还适用于测试&#xff08; &#xff09;阶段的软件文档。 A.编码 B.总体设计 D.数据库设计 C.软件需求分析 答案&a…

投入式无线液位传感器说明书

1 概述 DAQ-GP-TLL4G无线液位传感器终端是上海数采物联网科技有限公司推出的一款无线液体水位测量产品。原理是利用扩散硅片上的一个惠斯通电桥&#xff0c;被测介质&#xff08;气体或液体&#xff09;施压使桥壁电阻值发生变化&#xff08;压阻效应&#xff09;&#xff0c;产…

kubernetes集群编排——istio

官网&#xff1a;https://istio.io/latest/zh/about/service-mesh/ 部署 [rootk8s2 ~]# tar zxf istio-1.19.3-linux-amd64.tar.gz [rootk8s2 ~]# cd istio-1.19.3/[rootk8s2 istio-1.19.3]# export PATH$PWD/bin:$PATH demo专为测试准备的功能集合 [rootk8s2 istio-1.19.3]# i…

Linux 小程序-进度条

1.进度条准备知识 1.1回车与换行 以前的键盘会有一个这样的按键 &#xff0c;这个键就是回车与换行。 回车&#xff1a;从当前行回退到当前行的起始位置。 换行&#xff1a;从当前行切换到下一行的该位置。 有了以上的认识我们可以写出一个简单的倒计时代码&#xff1a; 注意&a…

2023.11.15-hivesql之炸裂函数explode练习

把一个容器的多个数据炸裂出单独展示: explode(容器) 需求:将NBA总冠军球队数据使用explode进行拆分&#xff0c;并且根据夺冠年份进行倒序排序。 1.建表 --step1:建表 create table the_nba_championship(team_name string,champion_year array<string> ) row format…

【Java】若依的使用代码生成及字典的使用

一、导言 1、介绍 若依管理系统是一款基于Java语言开发的开源管理系统。它采用了Spring Boot框架&#xff0c;使得开发更加快速和高效。同时&#xff0c;它还集成了MyBatis Plus&#xff0c;进一步简化了数据库操作。若依管理系统的界面简洁美观&#xff0c;且支持多语言&#…