泛型入门

java集合有个缺点——将一个对象放进集合之后,该对象的编译类型就会变成Object类型(其运行时类型不变)编译时不检查对象的类型。

泛型概念:java的参数化类型,即在创建集合时指定集合元素的类型。

如,List<String> strList=new ArrayList<String>();  后面的String可省略不写

strList.add(5);   会引起编译错误,因为已经指定strList 集合存放的数据类型为String类型了,不能存放其他类型的对象。输出时不用强制类型转换。

泛型实质:允许在定义接口、类和方法时使用类型形参,类型形参将在声明变量、创建对象和调用方法时动态的指定。

 1 public class Apple<T> {
 2     private T info;
 3     public Apple(){    
 4     }    // 构造器名依然为Apple,而不是Apple<T>
 5     public  Apple(T info){
 6         this.info=info;    
 7     }
 8 
 9     public static void main(String[] args) {
10         Apple<String> a1=new Apple<>("苹果");
11         System.out.println(a1.info);
12         Apple<Double> a2=new Apple<>(23.56);
13         System.out.println(a2.info);
14     }
15 
16 }

从泛型类派生子类

 可以从带泛型声明的接口、类中创建其实现类或继承类,此时使用这些接口或类时不能包含类型形参

public class A extends Apple<T>{}    此处为错误写法

public class A extends Apple<String>{}  此处为正确写法   

public class A extends Apple    使用类或接口时也可以不形参传入实参

调用方法是必须为所有的数据形参出入参数值。

不能在静态方法、静态变量和静态代码块的声明和初始化中使用类型参数。

public class B<T> {static T t1;public static void study(T t1){    }
}

 

转载于:https://www.cnblogs.com/peng111/p/5648436.html

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

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

相关文章

计算机系统基础:设备管理采用的相关技术知识笔记

1、通道技术 设备管理的通道技术是为了数据传输可以独立于CPU&#xff0c;让CPU从繁琐的I/O工作中解脱出来。设置通道后&#xff0c;CPU、只需要向通道发I/O指令,通道接收到指令后&#xff0c;从主存中取出本次要执行的通道程序并执行&#xff0c;只有完成了I/O任何后才会向CPU…

vue 滑动置顶功能_VUE 实现滚动监听 导航栏置顶的方法_蜡烛_前端开发者

非重点的代码&#xff0c;比如样式啥的&#xff0c;我就不放上来了&#xff0c;一笔带过简略的写一下1. data ()data () {paddingBottom: 1.5rem, // 给最外层div一个padding-bottom// 因为footer是fixed定位 如果padding-bottom为0 数据列表拉到最下面的时候 会有部分数据被fo…

treelist自动定位行_国内首创!金川集团千米深井双定位补偿摇台投用

新甘肃客户端金昌讯(新甘肃甘肃日报记者谢晓玲)近日&#xff0c;金川集团二矿区18行副井提升系统罐笼自动化改造项目顺利完成并投入使用。项目研发的双定位补偿摇台是国内同行业首创&#xff0c;可以实现罐笼在井筒内水平和竖直方向的同步定位&#xff0c;从根本上解决了传统摇…

css样式图片、渐变、相关小知识

一&#xff0c;background-position&#xff1a;&#xff08;图片定位&#xff09; 三种写法&#xff1a; 1&#xff09;&#xff1a;按&#xff05;比&#xff0c;左上角最小&#xff08;0&#xff05;&#xff0c;0%&#xff09;&#xff0c;右下角最大&#xff08;100%&…

计算机系统基础:磁盘调度知识笔记

1、磁盘调度介绍 磁盘可以被多个进程共享的设备&#xff0c;如果有多个进程请求访问磁盘时&#xff0c;为了保证信息的安全&#xff0c;系统的每一时刻只允许一个进程进入磁盘进行I/O操作&#xff0c;别的进程需要等待。 磁盘需要采用一种适当的算法&#xff0c;使每个进程对磁…

freemarker 去掉最后一个逗号_从零开始做一个SLG游戏(六)游戏系统以及配置表...

本文主要是来梳理下游戏内的基本系统(虽然只是照搬polytopia的&#xff0c;但是还是要总结一下)&#xff0c;并预先做一些配置表&#xff0c;并实现读取。一、经济系统1.总述经济系统可以是整个游戏的核心。在本游戏中只有一种资源&#xff1a;金币。每个回合都会获得一定数量的…

C++ 错误总结

1、出现不完全的类型‘class CJdThread’的非法使用或前向声明 src/../include/ComCommon.h:37:27: 错误&#xff1a;对不完全的类型‘class CJdThread’的非法使用 class CComDataProc:public CJdThread ^src/../include/ComCommon.h:7:7: 错误&#xff1a;‘class CJdThread’…

计算机系统基础:文件管理相关知识笔记

一、文件的相关概念 1、为什么要有文件管理? 文件系统主要是为了方面用户访问外部存储器信息&#xff0c;而不去关注内部存储的机制&#xff0c;只需要根据文件名就可以高效的存取信息。 2、文件的定义 文件是这一组具有符号名、在逻辑上具有完整意义的一组相关信息项的集合。…

list 根据某个数字所在位置_【Python学习笔记】09、使用list和tuple

listPython内置的列表数据类型是&#xff1a;list。list是一种有序的集合&#xff0c;可以随时添加和删除其中的元素。如&#xff1a;>>> classmates [Kuaie, Bob, Tracy]>>> classmates[Kuaie, Bob, Tracy]变量classmates就是一个list。用len()函数可以获得…

连接maven_如何在Eclipse中使用Maven工程连接远程的Spark

如何在Eclipse中使用Maven工程连接远程的Spark本地Spark跑不会出现什么问题&#xff0c;但是切换到服务器上各种问题。异常java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to fieldorg.apache.spark.api.java.JavaRDDLike$$anonf…

FastJSON的依赖

<!-- 添加 FastJSON依赖 --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.59</version> </dependency>

莫队模板

莫队的模板&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 嘿嘿嘿 #include<bits/stdc.h> using namespace std; const int maxn 1000005; inline int read() {int x0,f1;char chgetchar();while(ch>9||ch<0){if(ch-)f-1;chgetchar();}while(ch&g…

计算机系统基础:文件的存取和存储空间管理知识笔记

1、文件的存取 文件的存取实际上就是针对文件存储器上物理块的读写操作。存取方法主要有顺序存储、随机存储两种。 2、文件存储空间管理 磁盘分配表&#xff1a;外存空闲空间管理的数据结构。 2.1 空闲空间管理方法 1、空闲区表 将外存空间的一个连续未分配的区域称为空闲区。操…

语言筛选法选素数怎么解决输出超限_论文深耕 | 什么时候才能把文献看完?——论文的正确筛选、阅读顺序...

Hello!这是你与「大学生科研竞赛」的第 50 次相遇。搞科研免不了要看文献&#xff0c;一提到看文献就有很多人头疼&#xff0c;“那么多文献什么时候才能看完啊&#xff1f;”01筛选论文这个时候就需要我们对文献有一个筛选&#xff0c;筛选的办法也很简单&#xff1a;1标题首先…

ft2232驱动安装方法_ST-Link资料03_ST-Link固件升级、驱动下载安装方法

说明&#xff1a;本文原创作者『strongerHuang』本文首发于微信公众号『嵌入式专栏』&#xff0c;同时也更新在我的个人网站&#xff1a;EmbeddedDevelop一、写在前面前两篇文章讲述的都是关于ST-Link的一些理论知识&#xff0c;建议初学者看看&#xff1a;ST-Link资料01_ST-Li…

Java 泛形通配符 ?

Class<Integer> cla;与Class<?> cl; 前一个表示baicla只能指向Integer这种类型&#xff0c;而后一个cl表示可以du指向任意类型。 cla Integer.class 可以&#xff0c;但cla Double.class就不可zhi以。 但是cl Integer.class 可以&#xff0c;cl Double.class也…

操作系统基础:计算机作业管理知识笔记

1、计算机作业的概念计算机中的作业是为了完成某个用户的计算任务所做工作的总和。作业管理程序&#xff1a;操作系统中用来控制作业进入、执行、撤销的一组程序。2、作业与作业的控制方式脱机控制方式&#xff1a;用户需要把自己需要计算机完成的任务用作业控制语言编写成作业…

easyui的验证

多重验证&#xff1a; Js代码 { field : startPort, title : "起始端口", editor: "text", width : 50, editor: { …