首页 > 其他分享 >泛型

泛型

时间:2023-10-20 23:12:54浏览次数:28  
标签:修饰符 数据类型 class 类型 泛型 public

泛型

注意点:

  • 泛型中不能写基本数据类型(要写引用数据类型比如:String)
  • 指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
  • 如果不写泛型,类型默认是Object

【笔者批:泛型是在编辑视设卡,转成class文件时会消失(泛型的擦除),在jdk5中出现泛型,因为以前的屎山代码太多不好改】

泛型类

使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类

/*格式:
修饰符class类名<类型>{}
*/
//举例:
public class ArrayList<E>{
    //创建该类对象时,E就确定类型
}

此处E可以理解为变量,但是不是用来记录数据的,而是记录数据的类型,可以写成别的字母,一般T、E、K、V等比较多(因为type,element,key,value)

假设有两个人,一个大佬写泛型类,一个新手引用大佬写的泛型类

大佬在写泛型类时<>里写字母如E表示不确定的类型,新手在引用泛型类时需要在<>里写上引用数据类型,如String等

泛型方法

方法中形参类型不确定时(一般是指在一个类中,只有一个方法需要不确定的类)

  • 方案一:使用类名后面定义的泛型 -->所有方法都能用
  • 方案二:在方法申明上定义自己的泛型 -->只有本方法能用

格式:在修饰符后面加上<>即可,

修饰符 <类型> 返回值类型 方法名(类型 变量名){ }

如:public < T > void show ( T t ){

} //T表示不确定的类型,t表示一个变量,类似于String str

泛型接口

在集合中要添加的数据类型是不确定的

格式:在接口名后加上<>即可,

修饰符 interface 接口名<类型>{ }

举例:public interface List< E > { }

重点:如何使用一个带泛型的接口
  • 方式1:实现类给出具体的类型
  • 方式2:实现类延续泛型,创建对象时再确定

例如:

//方式1:实现类给出具体的类型
public class MyArrayList implements List<String>{
    //大括号里再重写所有的方法
}
//方式2:实现类延续泛型,创建对象时再确定
public class MyArrayList<E> implements List<E>{
    //大括号里再重写所有的方法
}

标签:修饰符,数据类型,class,类型,泛型,public
From: https://www.cnblogs.com/tenset/p/17778210.html

相关文章

  • Golang泛型的简单使用
    packagemainimport"fmt"//MyInt~表示不仅支持int8,还支持int8的衍生类型int8A和int8BtypeMyIntinterface{ int|~int8|int16|int32|int64}funcgetMaxNum[TMyInt](a,bT)T{ ifa>b{ returna } returnb}//结构体typeAgeTinterface{......
  • ASP.NET Core中对开放泛型(Open Generic)的依赖注入
    publicinterfaceIRepository<T>{voidAdd(Tentity);List<T>Get();}publicclassRepository<T>:IRepository<T>{List<T>_list=newList<T>();publicvoidAdd(Tentity){_list.Add(entit......
  • TS 踩坑笔记: 箭头函数添加泛型报错(Error: JSX element ‘T’ has no corresponding
    前言今天给大家分享一个在React项目中使用TypeScript遇到的错误项目背景React+TS的项目配置,项目中关于React组件的使用.tsx后缀,其他单纯的文件使用.ts后缀问题描述在React组件附近定义泛型的箭头函数时产生TS报错警告,原本以为是语法写错了但是实际上在.t......
  • Java 泛型
    从Java5以后,Java引入了“参数化类型(parameterizedtype)”的概念,允许程序在创建集合时,指定集合元素的类型,例如List<String>,这表明该List只能保存字符串类型的对象。Java的参数化类型被称为泛型(Generic)使用泛型通过在泛型类型后增加一对尖括号,尖括号中放入一个类型,例如Lis......
  • Ts泛型
    泛型有时,书写某个函数时,会丢失一些类型信息(多个位置的类型应该保持一致或有关联的信息)泛型:是指附属于函数、类、接口、类型别名之上的类型泛型相当于是一个类型变量,在定义时,无法预先知道具体的类型,可以用该变量来代替,只有到调用时,才能确定它的类型很多时候,TS会智能的根据传递......
  • Go泛型全面讲解:一篇讲清泛型的全部
    @目录序言1.一切从函数的形参和实参说起2.Go的泛型3.类型形参、类型实参、类型约束和泛型类型3.1其他的泛型类型3.2类型形参的互相套用3.3几种语法错误3.4特殊的泛型类型3.5泛型类型的套娃3.6类型约束的两种选择3.7匿名结构体不支持泛型4.泛型receiver4.1基于泛型的队......
  • C#学习笔记--数据结构、泛型、委托事件等进阶知识点
    C#进阶简单数据结构类ArrayList元素类型以Object类型存储,支持增删查改的数组容器。因而存在装箱拆箱操作,谨慎使用。//ArrayListArrayListarray=newArrayList();//增=================array.Add("Hello");array.Add(true);array.Add("Tony");//添加单个元素array.Add(......
  • Go泛型解密:从基础到实战的全方位解析
    本篇文章深入探讨了Go语言的泛型特性,从其基础概念到高级用法,并通过实战示例展示了其在实际项目中的应用。关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里......
  • C#内置泛型委托:Func委托
    C#内置泛型委托:Func委托 1、什么是Func委托Func委托代表有返回类型的委托2、Func委托定义查看Func的定义:usingSystem.Runtime.CompilerServices;namespaceSystem{////摘要://封装一个方法,该方法具有两个参数,并返回由TResult参数指定的类型......
  • 泛型算法(find、count、sort、fill、unique、copy、lambda、迭代器)
    一、概述algorithm中,还有一些数值泛型算法定义在头文件numeric中。算法永远不会执行容器的操作)。1、find和count:#include<iostream>#include<algorithm>#include<numeric>#include<vector>#include<list>usingnamespacestd;usingv_int=vector<int>;usingv_s......