Java泛型及其使用

【泛型】Java中的泛型,泛型类,泛型接口,泛型方法,泛型擦除 这篇文章总结一下Java中的泛型相关知识点,包括:泛型概念、泛型优缺点、泛型通配符、泛型上下界、泛型使用(泛型类、泛型接口、泛型方法)、泛型擦除等内容。 一、泛型概念 (1)什么是泛型 什么是泛型??? 泛型(Generic),是一种参数化数据类型,它允许我们在编写程序代码的时候不用具体指定需要什么数据类型,而是等到具体使用的时候,将数据类型以参数的形式传递给程序,这就是泛型程序设计。 (2)为什么需要泛型 我们来看看下面这个栗子 假设现在有个需求,通过集合保存元素,需要保存String字 阅读详情

转自(http://www.cxybl.com/html/bcyy/java/201111037710.html)

1.为什么要用泛型

   JDK 1.5之前,对象保存到集合中就会失去其特性,取出时要手动进行人工强制类型转化,集合元素中的数据类型可以不统一, 例:List集合
   list=new ArrayList();
   list.add("aa");
   list.add(1);
   list.add(12.5);
   加入泛型之后,list集合只能放同一类型的数据 ,就避免了list元素类型不统一的现象出现。

2.关于泛型应注意:
使用泛型时,泛型类型必须为引用数据类型,不能为基本数据类型, java中的普通方法,构造方法,静态方法中都可以使用泛型 ,方法使用泛型之前必须先对泛型进行声明,可以使任意字母,一般都要大写

3.怎么样取泛型集合中的数据:
使用Iterator迭代器迭代,使用普通for循环,使用for循环的新特性

4.自定义泛型:
   4-1.泛型定义在方法上:放之前定义
     public <T> void test1(T t){}
     public static <T> void test2(T t){}
     public <T> int test3(T t){ return 0; }
     public <T> List<T> test4(){ return null;  }
     public static <EE> void test5(EE e){}
  4-2.泛型定义在类上:如果一个同时用到同一个泛型那么可以把泛型定义到类上 ,可以声明一个或多个
     public class StudentDao<T,E>{
     public void test(T t){}
     public List<T> test2(){ return null; }    
注意:静态方法不能使用类定义的泛型,而应单独定义泛型
public static<E> void test3(E e){}
 
5.关于泛型应用的小案例(用的是junit单元测试,项目右键->properties->java build path->libraries->Add Library->选上JUnit确定添加):
@Test
public void testList(){
    List<String> list=new ArrayList<String>(); //List集合的测试
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    for(int i=0;i<list.size();i++){  //普通for循环
        System.out.println(list.get(i));
    }
    for(String str:list){  //for循环的新特性
        System.out.println(str);
    }
    Iterator<String> it=list.iterator();
    while(it.hasNext()){  //while循环
        System.out.println(it.next());
    }
}
@Test
public void testMap(){
    Map map=new HashMap(); //Map集合的测试
    map.put(1, "a");
    map.put(2, "a");
    map.put(3, "a");
    map.put(4, 1111);
    Set keys=map.keySet();
    Iterator it=keys.iterator();
    while(it.hasNext()){  // 根据key取值
        Integer key=(Integer) it.next();
        System.out.println("key:"+key+"   value:"+map.get(key));
    }
    Map<Integer,String> map1=new HashMap<Integer, String>();
    map1.put(1, "aaa");
    map1.put(2, "bbb");
    map1.put(3, "ccc");
    //map1.put(4, 1111);
    Set<Entry<Integer,String>> entries=map1.entrySet();  //根据map对象取值
    for(Entry<Integer,String> entry : entries){
        System.out.println("key:"+entry.getKey()+"  value:"+entry.getValue()+",");
    }	
}


疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC 阅读详情

相关推荐

HALCON深度学习模型部署新选择:一份详细的OpenVINO 2021.4 LTS集成与配置避坑指南

本文详细介绍了如何将HALCON深度学习模型与OpenVINO 2021.4 LTS集成,提供环境配置、硬件加速优化及故障排除的实用指南。特别针对Intel独立显卡的AI加速器接口进行优化,帮助机器视觉工程师提升AI推理效率,适用于工业检测等高要求场景。

weixin_42531779的博客 238

java创建list泛型_泛型,动态创建List<T> (转摘)

第一种:static void Main(){object intList = MakeList(typeof(int), 1, 2, 3);object strList = MakeList(typeof(string), "sdfd", "fet");//Listforeach(object obj in (System.Collections.IEnumerable)intList)Cons...

weixin_39564368的博客 1477

nCode:GlyphWorks案例教程一

nCode GlyphWorks案例一Comparing Frequency Content of Two Different Tests案例文件目标配置选择数据 Comparing Frequency Content of Two Different Tests 在本案例中,我们将比较来自两个不同测试的六个加速计通道的频率内容。将三轴加速度计放置在车辆的左前角和右前角,然后分别在两个不同的试验路面上行驶12分钟以上。 案例文件 此案例的文件(采用nCode DAC格式)位于nCode安装目录下的\demo

追月行的博客 1万+

java泛型的用法和详细的解释

一直在使用泛型,但是对泛型的了解非常浅,所以今天就做一个详细的笔记。 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 1,定义泛型类、泛型接口 //泛型类 public class Apple<T>{ pri...

345丶 7012

【机器人】转动的指数坐标表示心得理解

转动的指数坐标表示心得理解1.前言2.指数坐标表示旋转矩阵3.原理推导4.矩阵对数、矩阵指数 1.前言 最近因为项目需求,又学习了一点机器人学的东西,参考书籍为《现代机器人学》,该书采用指数坐标、旋量的方式来对机器人进行描述和运动学、动力学建模,让我对机器人有了更深的理解,也是弥补DH参数建模复杂的缺陷,虽然DH法只用4个参数,而旋量需要更多,但是它骚啊! 本文是我学习了转动的指数坐标表示的一个心得体会,如有问题请多多包涵。 2.指数坐标表示旋转矩阵 指数坐标可以用来表示求解旋转矩阵,其原理非常简单巧妙,需

要恰饭得嘛 2328

无人车路径规划方法汇总

无人车路径规划方法汇总

weixin_44380244的博客 2558

Java之泛型

一、什么是泛型 1.背景: JAVA推出泛型以前,程序员可以构建一个元素类型为Object的集合,该集合能够存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道存储每个元素的数据类型,否则很容易引发ClassCastException异常。 2.概念: Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本质就是参数化类型,也就是所操作的数据类型被指定为一个参数。 3.好处: 类型安全 消

Beyondczn的博客 9373

一文详解本地知识库RAG(检索增强):LangChain + Hugging Face 三件套 + 本地大模型 + MCP 协议 + Chroma + Agent 全流程实战

模型上下文协议(MCP)是 Anthropic 推出的开放标准,基于 JSON-RPC 2.0,为 AI 应用与外部工具/数据源之间提供统一的双向通信协议,被称为“AI 应用的 USB-C”。LangChain 是一个围绕 LLM、提示模板(Prompts)、记忆(Memory)、链(Chains)、工具(Tools)和代理(Agents)等组件打造的开源框架,旨在简化复杂自然语言应用的开发。:任意可调用的功能或服务(API、数据库查询、本地函数等),由 Agent 或 Chain 在推理过程中调用。

weixin_41645791的博客 1424

Java泛型详解:Java泛型集合、泛型类、泛型方法、泛型的使用

在 Java 1.5 之前没有泛型,通常需要使用强制类型转换的方式将一种数据类型转换为另一种数据类型,这种转换要求开发者对实际参数的类型具有可预知性。对于强制类型转换错误的情况,编译器可能不会提示错误,但是在运行时会出现异常,这是一个安全隐患。 为了解决这一隐患,从 Java 1.5 开始提供了泛型。泛型可以在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。本节将详...

jijiangpeng的博客 7436

QGis二次开发 —— 5.1、基于qgis开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

基于qgis开发雷达扫描、无人机飞行跟踪等

323

YOLOv11改进-卷积-引入Upsampling by Dynamic DySample 解决传统上采样灵活性问题

现有的上采样方法如等,依赖于动态卷积来生成上采样的内容感知核,但这些方法需要额外的子网络生成动态卷积核计算量较大。尤其是 FADE 和 SAPA 需要高分辨率的特征图作为引导,进一步增加了计算负担,并限制了应用场景。DySample的核心思想是将上采样过程重新定义为点采样(Point Sampling)。通过学习输入特征图中的采样点坐标,DySample 生成内容感知的采样点来对特征图进行重新采样,而不是使用动态卷积核。具体实现步骤如下:​​1. 输入特征图:大小为 C×H×W的输入特征图。

qq_64693987的博客 4660

Java泛型使用

Java泛型使用 1. 泛型 1.1 什么是泛型,为什么引入泛型 在项目中,我们的功能代码往往要考虑之后的复用!!!这要求功能代码尽可能的支持更多类型,在不考虑泛型的情况下,如果需要更换数据类型,只能重新完成对应数据类型的功能代码。有可能出现各式各样的类型,工作是重复的!!! 这里不单单是对于功能模块的要求封装。同时需要对数据类型进行统一的约束!!!根据用户的要求对应数据类型。 Java...

LioTomcat的博客 5280

Mac版 Android Studio自带模拟器无法联网解决方案

前言 作为一枚安卓开发者,免不了使用模拟器来开发调试(毕竟它比手机方便太多)。但是因为适配需要,我们会更多的使用真机开发调试,那么当模拟器遇到这样那样的问题,我们往往会无从下手,其中最烦的就是网络问题。 我最近图方便,又重新用起了模拟器,但是发现联网失败,用模拟器内置的浏览器也打不开网页,于是百度上一通找,毫无效果,各种说用cmd命令行设置模拟器dns的都没用,显示没有什么dns文件啥的,后来...

陈万洲的专栏 1万+

Java泛型——为何要有泛型

对于String类类型来说,它是继承自Object的,而Integer的直接父类是Number,因此会有Integer无法转String的错误。泛型类是在实例化类的时候指明泛型的具体类型,那么泛型方法就是在调用方法时指明泛型的具体类型。在实现传入泛型实参的泛型接口的实现类定义中,实现类即使不声明泛型,也不会编译错误。在实现未传入泛型实参的泛型接口的实现类定义中,实现类要声明泛型,否则会编译错误。为了避免这样可能的错误,引入泛型,使编译器在编译阶段就提示不匹配的类类型。方法返回了一个更加特定的返回类型。

xiaovie的博客 1721

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java泛型详解:为什么使用泛型?如何使用泛型?

大家好!,今天我将为大家介绍一个非常有趣的话题——泛型。作为Java语言中的一项重要特性,泛型可以让我们编写更加通用和灵活的代码。无论您是刚入门Java编程,还是已经有一定经验的开发者,了解泛型都对您的编程能力有所帮助。本文将深入探讨泛型的实现原理和本质,帮助您更好地理解并应用泛型。现在就让我们一起来探索吧!

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 8380

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java之泛型,什么是泛型?为什么用泛型?(泛型详解)

1.为什么会有泛型呢? 早期的Object类型可以接受任意的对象类型,但是在实际使用中,会有类型转化的问题,存在隐患,所以Java提供泛型解决这个安全问题 2.什么是泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类...

围巢 3975

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java泛型——泛型类、泛型方法、泛型接口

泛型Java 泛型Java 泛型是什么泛型类泛型类的格式泛型类举例泛型方法泛型方法的格式泛型方法举例泛型接口泛型接口的格式泛型接口举例 Java 泛型 Java 泛型是什么 官方定义: 泛型是Java SE 1.5的新特性,泛型的本质就是参数化类型,也就是说所操作的数据类型被指定为一个参数 这种参数类型可以用在类、接口和方法的创建中,分别成为泛型类、泛型接口、泛型方法 优缺点: ​ 优点:可以不用再类型转换了 ​ 缺点:降低了代码的可读性 泛型类 泛型类:当一个类要操作的引用数据类型不确定的时候,可

一个小小的码农 6587

Java泛型

是同时存在的,可是如果是常规的两个方法,他们的方法签名是一样的,也就是说虚拟机根本不能分别这两个方法。如果是我们自己编写Java代码,这样的代码是无法通过编译器的检查的,但是虚拟机却是允许这样做的,因为虚拟机通过参数类型和返回类型来确定一个方法,所以编译器为了实现泛型的多态允许自己做这个看起来“不合法”的事情,然后交给虚拟器去区别。如果是重载,那么子类中两个setValue方法,一个是参数Object类型,一个是Date类型,可是我们发现,根本就没有这样的一个子类继承自父类的Object类型参数的方法。

YLXCA的博客 1315

java泛型

文章目录1. 泛型简述2. 泛型类别2.1 泛型类2.1.1 某种实际类型,重用性不好,Holder只能拥有A类型2.1.2 Object类型,类型太泛,可以容纳所有类型2.1.3 在创建的时候可以指定只可以容纳某种类型,此后只能容纳这种类型注意:基础类型无法作为类型参数,其封装类型可以2.2 泛型接口2.3 泛型方法3. 泛型擦除3.1 泛型只在编译期有效3.2 泛型内部无法获得泛型参数的有关信...

登峰小蚁 3065

Java 泛型

Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型信息不会进入到运行时阶段。编译器有效 泛型的三种方式:泛型类、泛型接口、泛型方法 泛型类 定义格式: 修饰符 class 类名<代表泛型的变量> { } 例如,API中的ArrayList集合: class ArrayList<E>{ p

JustToFaith 2955

【 java 泛型】详解java泛型

java泛型可以提高java程序的类型安全,提高程序的可靠性,并且在开发中也较常用,因此还是要简单学习一下!

阿牛的博客 2069

java中的泛型是什么_Java中泛型是什么?Java泛型的详细介绍

本篇文章给大家带来的内容是关于Java中泛型是什么?Java泛型的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。一、什么是泛型?Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常.泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型参数化类型:ArrayList中的E称为类型参数变量Arra...

weixin_29174013的博客 3474

java 泛型的默认值_java泛型

1.什么是泛型泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型:泛型类 泛型接口 泛型方法作用:提高程序健壮性,简化代码泛型的默认值是Objectjdk 要1.5以上2.泛型定义/***泛型类*首先定义一个person的实体类 Person其中A代表的就是一个泛型,调用时可以自定义数据类型*/package com.temp;public class Per...

weixin_34246474的博客 1833

Java【泛型】

Java的泛型说明

在下的博客 1468

Java泛型的其他应用——泛型接口、泛型方法、泛型数组以及泛型的嵌套设置

学习目标 掌握泛型接口的使用 掌握泛型方法的定义的及使用 掌握泛型数组的使用 掌握泛型的嵌套设置 之前所有的操作都是在类中直接使用泛型操作的,那么,对于Java来说,也可以直接在接口中定义及使用泛型。 定义泛型接口 在JDK1.5之后,不仅仅可以声明泛型类,也可以声明泛型接口,声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上,如下格式所示: [访问权限]

1万+

【Java】泛型深入

在刚刚,我们仅仅是使用泛型,那我能不能自己写一个类似于ArrayList带有泛型的类让别人去用呢,当然这必须是可以的。泛型可以写在类的后面,也可以写在方法上,还可以写在接口后。如果将泛型写在类的后面,那么这个类叫做泛型类在类名后面定义泛型,创建该类对象的时候,确定类型如果将泛型写在方法的后面,那么这个类叫做泛型方法在修饰符后面定义方法,调用该方法的时候,确定类型如果将泛型写在接口的后面,那么这个类叫做泛型接口在接口名后面定义泛型,有两种用法:① 实现类确定类型;② 实现类延续泛型。

qq_39921135的博客 1074
上一篇: java基础:集合(七)
下一篇: java的反射机制
君子陌
博客等级 码龄17年 8粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值