首页
学习
活动
专区
圈层
工具
发布

【Java 泛型】泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )

文章目录 一、泛型简介 二、泛型类 三、泛型方法 四、静态方法的泛型 五、泛型类与泛型方法完整示例 一、泛型简介 ---- 泛型 可以 简单理解为 参数化类型 , 主要作用在 类 , 方法 , 接口 上...; java 泛型 与 C++ 模板 : Java 中的泛型 , 是仿照 C++ 中的 模板 开发的 , 目的是让开发者可以写出 通用 , 灵活 的代码 ; 伪泛型 : Java 中的泛型 , 是 伪泛型..., Java 泛型开发好之后 , 在 编译阶段 就 将泛型相关的信息消除 了 , 不会泛型留到运行时 ; 泛型类型 : 泛型方法 : 方法有参数 , 方法的参数 可以指定成一些 泛型 ; 泛型类 :...泛型的作用 : 安全检查 : 在 编译阶段 , 就可以进行 代码检查 , 将更少的错误带到运行时 ; 避免强转 : 避免 类型的强转 导致不必要的安全问题 ; 提高性能 : 使用泛型可以 提高 Java...泛型个数 , 泛型的个数可以有很多个 * 多个泛型之间 , 使用逗号隔开 * * 为方法指定的泛型 T 与类中的泛型 T 没有任何关系 * 这两个

22.6K30

Java进阶:【泛型】认识泛型,泛型方法,泛型类,泛型接口和通配符

泛型对应的类型都是引用类型不能是基本类型 泛型类和泛型接口 声明泛型类时传入类型实参 创建泛型类对象时,传入类型实参 类型实参为空时,默认为Object类型 继承泛型类: 1.泛型父类不传入类型实参...,默认为Object类型 2.泛型父类传入类型实参,子类既可以是泛型类,也可以不是 3.泛型父类传入类型实参,则子类必须是泛型类,且子类的类型形参列表必须包含父类的类型形参列表 泛型类的定义和实例化...如果父类不指定泛型,那么子类在实例化的时候需要指定 static class SubGeneric2 extends test01{ } 泛型类可以定义多个参数类型...泛型类的构造器写法: 不同泛型的引用类型不可以互相赋值 泛型如果不指定,就会被擦除,例子就是 泛型类中的静态方法不能使用类的泛型 不能直接使用泛型数组的创建,如果非要创建 泛型方法 什么是泛型方法...,不是带泛型的方法就是泛型方法,泛型方法有要求:这个方法的泛型参数类型要和当前类的泛型方法的泛型无关 换个角度:泛型方法对应的那个泛型参数类型和当前所在的这个类,是否为泛型类,泛型是啥,无关 泛型方法定义的时候

4.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 泛型示例 - 泛型方法,类,接口

    Java 中具有集合类的泛型非常容易,但是它提供了比仅创建集合类型更多的功能。 我们将在本文中尝试学习泛型的功能。如果我们使用专业术语,对泛型的理解有时会变得混乱,因此,我将尽量保持其简单易懂。...Java 中的泛型 Java 5 中添加了泛型,以提供编译时类型检查,并消除了ClassCastException使用集合类时常见的风险。整个收集框架都进行了重写,以使用泛型进行类型安全。...Java通用类 我们可以使用泛型类型定义自己的类。泛型类型是通过类型进行参数化的类或接口。我们使用尖括号()来指定类型参数。...Java通用接口 Comparable接口是接口中泛型的一个很好的例子,它写为: package java.lang; import java.util.*; public interface Comparable...这是一个显示Java泛型方法示例的类。

    3.5K50

    【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )

    > 四、泛型安全检查 五、完整代码示例 1、泛型类 / 方法 2、main 函数 一、泛型类用法 ---- 泛型类用法 : 使用时先声明泛型 , 如果不声明泛型 , 则表示该类的泛型是 Object...: 指定 泛型类 的泛型为 String 类型 , 那么在该类中凡是使用到 T 类型的位置 , 必须是 String 类型 , 泛型类的 泛型声明 , 使用时在 类名后面 声明 ; /.../ 指定 泛型类 的泛型为 String 类型 // 那么在该类中凡是使用到 T 类型的位置 , 必须是 String 类型 // 泛型类的 泛型声明...T data = arg; return data; } } 2、main 函数 import java.util.ArrayList; import java.util.List...; public class Main { public static void main(String[] args) { // 指定 泛型类 的泛型为 String 类型

    11.7K30

    Java泛型基础(一)目的泛型类总结

    本文首发于个人网站:Java中的泛型(一) 本文主要介绍Java泛型的基本知识,包括目的、泛型类的基本用法和场景应用场景。...目的 编写更加“泛化”的代码,编写可以应付多重类型的代码 Java中的泛型,用于实现“参数化类型”的概念 创造可以放不同类型对象的容器类,通过编译器来保证类型的正确; 能够简单&安全得创建复杂的模型 泛型类...定义 利用Java开发的时候,肯定会有一个类持有另一个或几个类的情况,在编写一些比较基础的组件,例如缓存操作组件,这类组件的逻辑差不多,但是希望能够处理不同的类型。...JavaSE5引入了“泛型”的概念,使得代码可以应用于多个类型,同时还能避免上述我说的两个问题,上面的代码,如果用Java泛型实现,则如下所示: package org.java.learn.generics...i = 0; i < 11; i++) { System.out.print(randomList.select() + " "); } } } 总结 泛型的东西很多

    93510

    Java泛型类编程测试

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/217 package com.joshua317; import...java.util.*; /** * 编程要求: * 1.定义一个泛型类Dao,在其中定义一个map成员变量,map的键为string类型,值为T类型 * (1)public void...的对象,内容为T对象entity * (4)public List list(),返回map中存放的所有T对象 * (5)public void delete(String id),删除map...中指定key为id的对象 * 2.定义一个User类,设置三个私有属性,分别为int id,int age,String name;重写toString方法,显示属性信息 * 3.创建Dao类对象,...分别调用Dao类的成员方法来操作User对象 * 4.使用Junit单元类进行单元测试 */ public class Main { public static void main(String

    77830

    泛型接口,泛型类和泛型通配符

    java零基础入门-高级特性篇(六) 泛型 中 泛型的使用位置,除了最常见的约束集合元素,还可以使用在接口,类,方法上面。...最本质的原因就是为了在使用接口,类,方法的时候,可以将类型作为参数,进行类型的参数传递。这样可以使程序的编写更加的灵活,在创建对象,调用方法的时候动态的指定类型,所以泛型也可以理解为类型的参数化。...如果java里面没有继承这个特性,那么泛型到这里就讲完了,但是,正因为java有继承这个特性,会导致很多其他的问题出现,其复杂程度会几何级的上升,后面的知识点对抽象能力和思维能力有较高的要求,请做好战斗准备...2.再看另一个问题,如果父类是泛型类型,如何定义子类? ? 泛型类的子类 如果将一个类定义为泛型类,那么在创建该泛型类的子类的时候不能将子类直接继承该泛型类,而是需要指定父类泛型的类型。...比如父类是Book,子类不能直接extends Book,而是需要指定T的类型,上例中使用的Book作为类型。 在java中,泛型不能继承和实现。为什么?WHY?

    3.3K20

    泛型(泛型擦除)【java基础—-泛型】

    2.1泛型类 2.2泛型接口与泛型类相似,不举例子了 2.3泛型方法 2.4.疑惑,为什么有泛型类了,还要有泛型方法,泛型类与泛型方法有什么区别,泛型方法有什么好处?...4.3不能实例化泛型,例如 T t = new T(); 理由:泛型擦除T都没了 4.4泛型不能是基本类型(泛型本质是一种引用类型),还有考虑到泛型擦除后的类型,例如为Object类型时,Object...不能存储基本类型int,double… 5.泛型擦除 5.1 泛型擦除概念: 5.2 由于泛型擦除出现的错误举例: ---- ---- 1.什么是泛型 1.1泛型概念: Java泛型是J2 SE1.5...17 18 package MyGenerics; import java.util.List; //Generic类,泛型类 //语法:类名 public class MyGeneric...4.4泛型不能是基本类型(泛型本质是一种引用类型),还有考虑到泛型擦除后的类型,例如为Object类型时,Object不能存储基本类型int,double… 5.泛型擦除 5.1 泛型擦除概念: 类型擦除指的是通过类型参数合并

    4.3K51

    【Kotlin】泛型 ① ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 )

    文章目录 一、泛型类 二、泛型参数 三、泛型函数 四、多泛型参数 五、泛型类型约束 一、泛型类 ---- 定义一个 泛型类 , 将 泛型参数 T 放在 尖括号 中 , 该泛型参数放在 类名后...下面的代码中 , 声明了 Student 泛型类 , 该泛型类 接收 T 类型的泛型参数 , 在主构造函数中接收 T 类型的参数 , 在该泛型类中声明了 T 类型的成员属性 ; class Student...---- 函数 的 参数 或 返回值 类型为 泛型类型 , 则该函数称为 泛型函数 ; 代码示例 : 该代码中 , 泛型函数 logT 的 参数 和 返回值 都是 T 泛型参数 类型 ; class..., 需要在 fun 关键字 和 函数名 之间 , 使用 尖括号 注明 ; 代码示例 : 在本代码中 , logT 函数涉及到了两个泛型参数 , 传入的 匿名函数 参数类型为 (T) -> R...R 的类型是 Boolean 类型 ; 3.14 true 五、泛型类型约束 ---- 在 泛型类 , 泛型函数 中 , 使用泛型前 , 需要声明 泛型参数 : 泛型类 泛型参数 声明 : 如果类中

    4.9K10

    【Flutter】Dart 泛型 ( 泛型类 | 泛型方法 | 特定类型约束的泛型 )

    一、Dart 泛型类与泛型方法 泛型作用 : 为 类 , 接口 , 方法 提供复用性 , 支持类型不确定的数据类型 ; 泛型类 : 提高代码复用程度 ; 泛型方法 : 参数或返回值有泛型类型约束 , 参数或返回值类型必须符合对应的泛型类型..., 如指定该泛型类型必须是某个类的子类 , 使用 约束该泛型必须是某个类的子类 ; 泛型类示例代码 : /// 泛型中的特定类型约束 /// 将泛型约束为某个类型的子类.../Dart_OOP.dart'; /// 泛型测试类 class Generic{ /// 该方法测试泛型类及泛型方法 void test(){ // 创建泛型类对象 , 泛型类型设置为...: /// 定义 Dart 类 /// 与 Java 语言类似, 所有的类默认继承 Object 类 class Person{ /// 定义变量 String name; int age...: 如果父类有非空参数的构造函数, 子类必须实现相同参数的构造函数 /// 如果该类有父类 , 那么先调用父类的构造方法 , 完成父类的初始化 /// 然后才能完成自己的初始化 ///

    8K00

    Java泛型详解:和Class的使用。泛型类,泛型方法的详细使用实例

    二、各种泛型定义及使用  1、泛型类定义及使用  我们先看看泛型的类是怎么定义的:    [java]     view plain     copy    //定义   class Point{...3、泛型接口定义及使用  在接口上定义泛型与在类中定义泛型是一样的,代码如下:     [java]     view plain     copy    interface Info{       ...      与泛型类的定义一样,也是在接口名后加尖括号; (1)、使用方法一:非泛型类 但是在使用的时候,就出现问题了,我们先看看下面这个使用方法:      [java]     view plain...(2)、定义泛型数组 在写程序时,大家可能会遇到类似String[] list = new String[8];的需求,这里可以定义String数组,当然我们也可以定义泛型数组,泛型数组的定义方法为 T...关于泛型方法的使用实例 这个地方就有2个,但是上面文章也都讲到啦。  1,一个是泛型表示某一个类型的参数。为的传递某一类的参数对象  2,另一个则是传递的不是参数,而是代表Class,某一个类。

    4.5K50

    java泛型之泛型边界

    参考链接: Java中具有泛型的有界类型 在网上发现这篇文章写得不错,地址:http://build.cthuwork.com:8081/wordpress/category/java教程/java再谈泛型...其主要用处之一是在使用Java或第三方的API的泛型类时,对泛参类型不同,但泛参具有继承关系,且主要关注其输入的泛型对象进行归纳。...①可用输入类型   下界通配符的输入类型为其指定的类型或子类。因为其意义为接受其指定类型或其父类作为泛参。...②可用输出类型   下界通配符的输出类型始终为Object,因为其意义为接受其指定类型或其父类作为泛参,我们并不知道具体是哪一个父类。...在虚拟机看来,List这个泛型类型只是普通的类型List而已,这种行为叫泛型擦除(Type Erasure)。   那么在Java中泛型是如何如何实现其目的的呢?Java的泛型充分利用了多态性。

    2.7K10

    【说站】Java泛型类如何定义

    Java泛型类如何定义 1、说明 (1)泛型类的定义只需在类名后面添加类型参数,当然也可以添加多个参数,如类似、等等。因此,我们可以在类别中使用定义的类型参数。...(2)泛型类最常用的使用场景是元组的使用。我们知道方法return返回值只能返回单个对象。...如果我们定义一个通用类型,定义两个甚至三个类型参数,那么在我们的通用类型中构建这样一个元组数据,并通过泛型传输多个对象,这样我们就可以一次性使用多个数据。...setData(T t) {      this.item=t;     }          public T getData() {      return this.item;     } } 以上就是Java...泛型类定义的方法,希望对大家有所帮助。

    90830

    Java基础入门笔记07——泛型类

    泛型 用来限制集合的存入类型:指定一种——保证类型安全 Java中的泛型只在编译过程中生效,编译结束就清除相关信息,泛型信息不会进入运行阶段 泛型的使用 1.泛型类 package study1118;...A T //泛型类的定义 class 泛型名 { } //泛型类中所有类型都将会时新建泛型对象时,new的时候指定的那种类型 class A{ private.../但进行赋值的类如果有泛型为Object的类则可以,涉及到自动转换类型 a1=a3;//编译报错 a3=a1;//编译报错 a3=a2;...(没有方法体) //需要在实现类中进行重写 } //实现接口IB的抽象方法时,如果未传入实参(此处的实参是某一种泛型),默认泛型为定义接口时所指定的类型 class B1 implements...>(); //新建B2类对象时候,不需要指定泛型类型,因为定义B2类时已经限制了泛型(此处为String) B2 b2 = new B2(); } } 3.泛型方法 class

    36420
    领券