首页 > 其他分享 >泛型

泛型

时间:2023-03-06 14:56:06浏览次数:42  
标签:形参 子类 ArrayList 类型 泛型 方法

泛型

概念

类型参数,参数化的类型

比喻:标签

形式

1、泛型类、泛型接口

//语法格式
[修饰符]  class/interface  类名/接口名<类型参数列表>{
}

  多个之间使用,分割

  类型参数习惯命名

    原则:尽量见名知意,尽量是1个大写字母,或大写字母加数字

    E  Element

    K  Key

    V  Value

    T  Type

    T1,T2

    U1,U2

    R  ReturnType

  注意

    (1)泛型形参由泛型实参决定

      在使用这个泛型类时

      (1)创建对象  ArrayList<Student> list = new ArrayList<Student>();

      (2)继承类或实现接口  class Student implements Comparable<Student>

    (2)泛型实参必须指定为引用数据类型,不能是基本数据类型

    (3)泛型形参在声明它的类或接口中,当做某种已知的类型来使用的,可以用它声明属性、方法的形参类型,方法的返回值类型,方法的局部变量类型等

    (4)泛型形参不能用于

      不能作为异常的类型

      不能用于静态成员上面

    (5)泛型

      不能用于创建数组对象

2、泛型方法

//语法格式
[修饰符]  <类型参数列表>  返回值类型   方法名(形参列表)

  泛型方法可以是静态方法,也可以是非静态方法

  静态方法如果要用泛型,只能使用泛型方法的形式

  泛型方法的类型形参只适用于当前方法,和别的方法无关

  泛型方法的泛型形参由调用该方法时实参的类型决定

    此时实参,即决定了泛型方法形参的值,又决定了泛型方法形参的类型

  泛型方法的泛型形参也不能是指定为基本数据类型,可以用它的包装类,也不能用于异常类型

泛型的通配符

1、?

  代表任意类型

  如果是集合,例如ArrayList<?>,这样的集合不能添加元素

2、?  extends 父类

  ?代表父类本身或父类的子类类型可以

  如果是集合,例如ArrayList<?  extends 父类>,这样的集合不可以添加

3、?  super 子类

  ?代表子类本身或子类的父类类型可以

  如果是集合,例如ArrayList<?  super 子类>,这样的集合,可以添加,仅限于添加子类或子类的子类对象

JDK1.7的简写法

  ArrayList<String> list = new ArrayList<>();

标签:形参,子类,ArrayList,类型,泛型,方法
From: https://www.cnblogs.com/woniupa/p/17183643.html

相关文章

  • 反射与泛型、动态代理
    泛型在Java中的泛型简单来说就是:在创建对象或调⽤⽅法的时候才明确下具体的类型好处是:代码更加简洁(不再需要强制转换),程序更加健壮(在编译期间没有警告,在运⾏期就不会出现......
  • 从Linq的Where方法理解泛型、委托应用场景
      最近遇到了一个问题,Linq的Where里面传递的是什么?Where的功能是什么实现的?没有第一时间答上来,在整理相关资料后决定自行实现Linq的Where方法来加深印象。什么是泛型......
  • DataTable转泛型集合
    usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Reflection;namespaceBT.Preservation.Models{publicstaticclassExtend......
  • 五分钟重温C# 委托,匿名方法,Lambda,泛型委托,表达式树
    五分钟重温C#委托,匿名方法,Lambda,泛型委托,表达式树翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 1人赞同了该文章第一分钟:委托有......
  • #yyds干货盘点#【愚公系列】2023年02月 .NET/C#知识点-委托、匿名方法、Lambda、泛型
    前言在.NET中,委托是一种类型,它可以持有对一个或多个方法的引用,并允许将这些方法作为参数传递给其他方法。.NET中的委托类似于C和C++中的函数指针,但具有更高的类型安......
  • 泛型
    历史泛型在Java1.5版本被引入泛型的本质是参数化类型泛型类型只能是引用类型,即不能是8钟基本数据类型使用List<T1extendsT2>,表示T1类型不能是T2类型的父类......
  • day03-面向对象高级3-内部类&枚举&泛型
    1,内部类回顾:之前学了类的四个成员,分别是成员变量,成员方法,代码块,构造器,现在这是第五个成员,内部类;前三个作了解,第四个重点学习。内部类的应用场景......
  • C#/.NET知识点总结【泛型】
     泛型极大提高代码可用性,可以重复使用对象,定义一个反省对象后,我们可以赋值成string类型,int类型,类型是安全的性能也有提高  https://www.ktanx.com/blog/p/665 ......
  • 关于运行时类的父类的泛型的获取
    固定模板Classclazz=Class.forName("...");//获取带泛型的父类(Type是一个接口,Class实现了此接口)Typesuperclass=clazz.getGenericSuperClass();//如果父类是......
  • 泛型
    泛型packageGenerics;//泛型类就是属性的数据类型不确定,在创建对象的时候再确定.publicclassa1<T>{//属性类型是<T>泛型privateTname;p......