首页 > 其他分享 >1、泛型说明

1、泛型说明

时间:2023-02-14 22:46:45浏览次数:34  
标签:Person ArrayList 说明 类型 泛型 new public

1. 泛型引入

1、使用传统方法的问题

  • 不能对加入到集合 ArrayList 中的数据类型进行约束(不安全)

  • 遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响

2、泛型的好处

  • 编译时,检查添加元素的类型,提高了安全性
  • 减少了类型转换的次数,提高效率
  • 不在提示编译警告

3、泛型介绍

  • 泛型又称参数化类型,是jdk5.0 出现的新特性,解决数据类型的安全性问题
  • 在类声明或实例化时只要指定好需要的具体的类型即可
  • Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。
  • 泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。
package com.hspedu.generic;

public class Generic03 {
    public static void main(String[] args) {

        Person<String> person = new Person<String>("教育");
        

    }
}

class Person<E> {
    E s; //E 表示s 的数据类型,该数据类型在定义Person对象的时候指定,即在编译期间,就确定E是什么类型

    public Person(E s) { //E也可以是参数类型
        this.s = s;
    }

    public E f() { //返回类型使用E
        return s;
    }
}

4、泛型的语法

  • 泛型的声明:

    interface 接口{} 和 class 类<K,V>{}

    1. 其中,T,K,V不代表值,而是表示类型
    2. 任意字母都可以,常用 T 表示,是Type 的缩写
  • 泛型的实例化:

    要在类名后面指定类型参数的值(类型)。如:

    1. List strList = new ArrayList();
    2. Iteratoriterator = custmers.iterator();

5、泛型使用的注意事项和细节

  • interface List{} , public class HashSet();

    说明:T,E 只能是引用类型

  • 在给泛型指定具体类型后,可以传入该类型或者其子类类型

  • 使用形式

    //编译器会进行类型推断   推荐使用
    ArrayList<Integer> list = new ArrayList<>();
    List<Integer> list2 = new ArrayList<>();
    
  • 如果我们这样写 List list3 = new ArrayList(); 默认给它的泛型是 [ E 就是 Object]

标签:Person,ArrayList,说明,类型,泛型,new,public
From: https://www.cnblogs.com/muzhe777/p/17121111.html

相关文章

  • 2、自定义泛型
    1.自定义泛型类1、基本语法class类名<T,R...>{//...表示可以有多个泛型​ 成员}2、细节普通成员可以使用泛型(属性,方法)使用泛型的数组,不能初始化静态方法......
  • 五分钟重温C# 委托,匿名方法,Lambda,泛型委托,表达式树
    五分钟重温C#委托,匿名方法,Lambda,泛型委托,表达式树翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 1人赞同了该文章第一分钟:委托有......
  • fsck工具说明
    1、简介FSCK是一个很重要的 Linux/Unix工具,它用于检测并修复文件系统中的错误。它类似于Windows操作系统中的“chkdsk”工具,但它是为Linux、MacOS、FreeBSD......
  • 淘宝店铺订单API接口同步方案,参考值说明
    ​获取卖家店铺订单背景:订单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时、完整的展示在卖家面前。由于API请求依赖于网络,存......
  • MarkDown语法说明
    一、markdown基础1.标题使用#号标记,可以表示1-6级标题,随#个数递增。如:#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题注:最后一......
  • ERP流程一 总体说明
    一、工作流说明:总共分四大模块1)任务中心2)单据类型3)工作流4)工作流角色二、任务中心最要用来显示未审核、未提交、未确认的信息,双击之后即可进到相关的模块三、单据......
  • Vue的v-html指令说明,含案例
    v-html指令总结:1、作用:向指定节点中渲染包含html结构的内容2、与插值语法的区别:(1)v-html会替换掉节点中所有的内容,{{}}则不会(2)v-html可以识别html结构3、特别注意:(1......
  • GB/T28181-2022针对H.265、AAC的说明和技术实现
    GB/T28181-2022规范说明GB/T28181-2022相对来GB/T28181-2016针对H.265、AAC的更新如下:——更改了“联网系统通信协议结构图”,媒体流通道增加了H.265、G.722.1、AAC(见4.3.1......
  • 通过FTP获得靶机Shell步骤说明
    通过FTP获得靶机Shell步骤说明当已经获取到FTP的用户名和密码,并且该用户有权限上传文件以及创建文件,那么基于此获取Shell的步骤如下:1.在KaliLinux上利用ssh-keygen命令......
  • LKT(LCS)安全芯片RSA密钥存储格式说明
    LKT系列安全芯片使用RSA算法时,需要先向RSA的公私钥文件写入对应的公私钥参数。私钥文件需要存储p、q、dp、dq、qinv,公钥文件需要存储m(模长)、n、e等参数。RSA算法目前常用......