首页 > 编程语言 >Java中的泛型

Java中的泛型

时间:2023-12-25 15:36:49浏览次数:44  
标签:Java list 集合 add 实例 类型 泛型

1.为什么要有泛型

泛型可以理解为标签,比如药店里会在某一类药品处贴上标签方便寻找。

定义:把元素的类型设计成一个参数,这个类型参数叫做泛型

比如List<String>这表明该List只能保存字符串类型的对象

那么使用或不使用泛型有什么区别呢?看下面的代码

@Test public void test(){ ArrayList list = new ArrayList(); //需求:存放学生的成绩 list.add(78); list.add(60); list.add(30); list.add(99); //问题1:类型不安全 list.add("Tom");

for (Object score : list){
    //问题2:强转时,可能出现ClassCastException
    int stuScore = (Integer) score;
    System.out.println(stuScore);
}

}

2.在集合中使用泛型 集合接口或集合类在JDK5.0时都修改为带泛型的结构。 在实例化集合类时,可以指明具体的泛型类型 指明完后,在集合类或接口中凡是定义类或接口时,内部结构(方法,构造器,属性等)使用到类的泛型的位置,都指定为实例化时的泛型类型 比如:add(E e) —>实例化以后:add(Integer e)

泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类型的位置拿包装类替换 如果实例化时,没有指明泛型的类型,默认为Object类型

2.自定义泛型结构

自定义泛型结构有:泛型类、泛型接口;泛型方法

标签:Java,list,集合,add,实例,类型,泛型
From: https://blog.51cto.com/u_13529088/8968916

相关文章

  • JAVA TSV文件的解析与生成
    TSV文件与CSV文件的区别TSV为用制表符tab分隔的文本文件。CSV为用逗号,分隔的文本文件。TSV文件的打开方式1.使用nodepad++等文本工具打开,使用记事本打开会导致某些行的格式错误。2.打开一个Excel,直接将tsv文件拖进去即可。JAVATSV文件的解析1.添加univocity-parsersjar包依赖 ......
  • JAVA异常处理及分类
    Java异常处理是一种机制,用于在程序执行过程中处理错误和异常情况。异常是指在程序运行时发生的不正常情况,可能导致程序的中断或错误输出。在Java中,异常是通过对象来表示的,它们属于java.lang包。异常处理的目标是在程序发生异常时,能够以一种有序的方式进行处理,防止程序因异常而......
  • Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL synta
    问题描述Causedby:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'orderwherestatus!='已完成''atline1问题解决最后发现时因为......
  • jmeter 压力机端口不够用Response code:Non HTTP response code: java.net.NoRouteToH
    四  压测机异常,修改配置后重试Responsecode:NonHTTPresponsecode:java.net.NoRouteToHostException原因:Jmeter发压机的端口不够用解决办法:1.netstat|grepTIME_WAIT|wc-l查看目前处在TIME_WAIT状态的值大不大2.检查系统sysctl中配置项:(/etc/sysctl.conf)net.ipv4.t......
  • Java操作Word修订功能:启用、接受、拒绝、获取修订
    Word的修订功能是一种在文档中进行编辑和审阅的功能。它允许多个用户对同一文档进行修改并跟踪这些修改,以便进行审查和接受或拒绝修改。修订功能通常用于团队合作、专业编辑和文件审查等场景。本文将从以下几个方面介绍如何使用免费工具FreeSpire.DocforJava在Java程序中操作W......
  • Ubuntu 20.04 设置开机自启脚本启动java程序
    1)cp/lib/systemd/system/rc-local.service/etc/systemd/system2)修改/etc/systemd/system/rc-local.service,在该文件的最底部添加(可用vi/etc/systemd/system/rc-local.service命令)[Install]WantedBy=multi-user.targetAlias=rc-local.service3)创建/etc/rc.lcoal文件(vi/etc/rc.l......
  • javaCC链1
    cc1链jdk:jdk1.8.0_65commons-collections3.2.1cc1链起点是commons-collections包的Transformer接口,这个接口的transform方法接收一个对象作为参数packageorg.apache.commons.collections;publicinterfaceTransformer{Objecttransform(Objectvar1);}所以我们......
  • Java外部类和内部类
    一:外部类:平时定义的类二:内部类:一般情况下,类和类之间是相互独立的,内部类可以理解为打破了这种独立,让一个类成为了一个类的内部信息,和成员变量成员方法同级。所以创建内部类的时候要在外部类里面创建,不可以跳出外部类的大括号。同样内部类作为一个类也可以定义变量和方法  ......
  • java alibaba fastjson自定义序列化反序列化(教你解决问题思路)
    大家版本不一样方式可能不一样,我不管你的fastjson版本是哪个,按照我这个思路去弄就行写一个JSONObject类,导入fastjson的JSONObject,然后CTRL+鼠标左键点进去看JSONObject源码,然后点击IDEA的左上角selectopenedfile来定位到当前打开的文件。然后看当前目录这边可以看到上面有个Seria......
  • 史上最坑爹的Java代码:Hello, World!
    大家好!我是老码农。《码农说》公众号的第一篇文章我们先从:Hello,World!聊起!Hello,World!Hello,World!是很多Java开发人员写的第一程序,可就是这第一个程序,就把我们华丽丽带到了沟里。(其实也不怪咱们开发人员,主要是好多教材的第一个程序都是Hello,World!)一日掉沟里,很多年还一直......