我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java 泛型

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java 泛型

  1. 概述
    泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。

泛型,就是类型参数。

一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。
那么类型参数理解呢?
顾名思义,就是将原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

举个例子:

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

String 就是确定了list中元素类型只能是String,其他类型只能会编译器报错。

泛型的本质是为了参数化类型,(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。

也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

简单泛型类
就是具有几个泛型变量的类
例如:一个泛型变量T(泛型变量的个数是指尖括号中的泛型个数)

public class Pair<T>{private T first;private T second;    public T getFirst() {        return first;    }    public void setFirst(T first) {        this.first = first;    }       public T getSecond() {        return second;    }    public void setSecond(T second) {        this.second = second;    }        public Pair(T first, T second) {        this.first = first;        this.second = second;    }}

泛型类也可以有多个类型泛型变量,例如,

public class Pair<T,U>{...}

用具体的类型替换泛型变量就可以实例化简单泛型类,例如:

Pair<String>

泛型简单方法

class ArrayALg{   public static <T> T getMiddle(T... a){        return a[a.length/2];    }}

这个方法是在一般类中定义的,泛型变量放在 public static 后面。返回类型之前。

调用泛型方法时候,可以省略泛型的参数,编译器会从其他信息中去获取这个泛型是什么数据类型。

String middle=ArrayALg.getMiddle("a","b","c");

哪里用到了泛型,编译器会得到这个泛型的具体信息。

泛型变量限定
这个是计算最小值

public static <T> T min(T[] a){if(a==null || a.length==0return null;T smallest =a[0];for(int i=1;i<a.length;i++){if(smallest.compareTo(a[i]>0)){smallest=a[i];}return samllest;}}

这个是比较数值,但是泛型是T,表示任何一个类的对象。那怎么去限制T的类型范围?
用关键字extends
将T的范围限制在Comparable接口

public static <T extends Comparable> T min(T[] a)...

一个泛型变量或通配符可以有很多个限定,例如:

T extends Comparable & Serializable

限定类型用&分隔,而逗号来分隔泛型变量

泛型通配符
01.? extends 某一个类
举个例子:

public static void test(Pair<Employee> p){Employee first=p.getFirst();Employee second=p.getSecond();System.out}

02.? super 某一个类
限制泛型是某一个类的超类(父类)。

来源地址:https://blog.csdn.net/qq_38757863/article/details/132560283

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java 泛型

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java泛型

Java泛型 🧳1. 泛型类的定义🧳1.1 语法1.2 简单示例1.3 加入静态内部类的示例1.4 加入继承或实现的示例1.5泛型的上界1.5.1复杂举例1.6泛型的下界 🌂2.
2023-08-22

java 泛型

概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 泛型,就是类型参数。 一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。 那么类型参数理解呢? 顾名思义,就是将原来的具体的类型
2023-08-30

JAVA泛型浅析

本文主要列举了在使用Java泛型时应该注意的问题。Java泛型是Java5的一个重要特性,它和自动装箱、变长参数等新特性一起,提升了Java代码的健壮性和易用性,但SUN本身过分强调向前的兼容性,也引入了不少问题和麻烦。[@more@]JA
2023-06-03

Java泛型的解析

这期内容当中小编将会给大家带来有关Java泛型的解析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、泛型简介1.1 泛型的概念 所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是
2023-06-15

详解Java中的泛型

这篇文章主要介绍了Java中的泛型,当我们不确定数据类型时,我们可以暂时使用一个字母T代替数据类型,例如写一个方法,但是我们不知道它是传递的是什么数据类型,我们就可以使用泛型,到时候只要指明T是什么数据类型,就可以使用了,需要的朋友可以参考下
2023-05-19

重新理解Java泛型

这篇文章的目的在于介绍Java泛型,使大家对Java泛型的各个方面有一个最终的,清晰的,准确的理解,同时也为下一篇《重新理解Java反射》打下基础。简介泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从
2023-05-30

java泛型详细介绍

一. 泛型概念的提出(为什么需要泛型)?(推荐:java视频教程)首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { Li
java泛型详细介绍
2019-06-24

java泛型如何实现

在Java中,泛型是通过使用尖括号来实现的。在类或方法的声明中,可以使用泛型来指定一个或多个类型参数。在类的声明中,可以在类名后面使用尖括号来指定一个或多个类型参数。例如,下面的代码是一个泛型类的声明:public class MyGe
2023-10-27

Java泛型怎么应用

本篇内容主要讲解“Java泛型怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java泛型怎么应用”吧!一、什么是泛型Java 泛型(generics)是 JDK 5 中引入的一个新特性,
2023-06-27

Java泛型实例分析

这篇文章主要介绍“Java泛型实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java泛型实例分析”文章能帮助大家解决问题。首先,我们来看看泛型Java的经典用法:import java.ut
2023-06-03

Java泛型面试题目

Java中的泛型是什么 ? 使用泛型的好处是什么?泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。好处: (推荐学习:java
Java泛型面试题目
2017-05-28

如何掌握Java泛型

本篇内容介绍了“如何掌握Java泛型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 为什么要用泛型?设想一个场景,我们希望用Java创建一个
2023-06-15

java中什么是泛型

本篇文章给大家分享的是有关java中什么是泛型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程
2023-06-14

Java中怎么擦除泛型类型

Java中怎么擦除泛型类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言Java泛型这个特性是从JDK 1.5才开始加入的,因此为了兼容之前的版本,Java泛型的实现采
2023-06-20

编程热搜

目录