泛型可以用于接口、类、方法上。还有泛型通配符这个概念

泛型的好处:可以在编译时检查

1.用于方法中,指定该方法中的形参的类型。

语法:修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }

注意:方法上定义了是什么 泛型变量 ,后面就只能用什么 泛型变量

package com.itheima.hw;

import java.util.Arrays;

/**
* @author Pzi
* @create 2022-09-27 9:57
*/
public class GenericArray { // 泛型方法,交换数组中两个索引位置的值
public static <T> void swap(T[] arr, int index1, int index2) {
T temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
} public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6};
Integer newNums[] = Arrays.stream(arr).boxed().toArray(Integer[]::new);
swap(newNums, 0,1);
} }
2.用于类上

修饰符 class 类名<代表泛型的变量> { }

3.用于接口上

修饰符 interface接口名<代表泛型的变量> { }

  • 如果某个类要实现某个泛型接口,但是该实现类也不确定类型,如下定义
public class MyImpl3<E> implements MyGenericInterface<E> {
@Override
public void add(E e) { } @Override
public E getE() {
return null;
}
}
4.泛型通配符

可以用来指定传入类型的上限和下限

可以用来表示位置的类型,比如说一个方法中形参的类型

如:

public static void getElement(Collection<?> coll){}

类型名称 <? extends 类 > 对象名称
表示只能传入该类或者其子类 类型名称 <? super 类 > 对象名称
表示只能传入该类或其父类

Java泛型的总结的更多相关文章

  1. Java泛型的历史

    为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...

  2. 浅析Java 泛型

    泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...

  3. Java:泛型基础

    泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...

  4. java泛型基础

    泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 这种参数类型可以用在类.接口和方法的创建中, 分别称为泛型类.泛型接口.泛型方法.  Ja ...

  5. 使用java泛型设计通用方法

    泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 因此我们可以利用泛型和反射来设计一些通用方法. 现在有2张表, 一张user表和一张stu ...

  6. 关于Java泛型的使用

    在目前我遇到的java项目中,泛型应用的最多的就属集合了.当要从数据库取出多个对象或者说是多条记录时,往往都要使用集合,那么为什么这么使用,或者使用时有什么要注意的地方,请关注以下内容. 感谢Wind ...

  7. 初识java泛型

    1 协变数组类型(covariant array type) 数组的协变性: if A IS-A B then A[] IS-A B[] 也就是说,java中的数组兼容,一个类型的数组兼容他的子类类型 ...

  8. 【Java心得总结四】Java泛型下——万恶的擦除

    一.万恶的擦除 我在自己总结的[Java心得总结三]Java泛型上——初识泛型这篇博文中提到了Java中对泛型擦除的问题,考虑下面代码: import java.util.*; public clas ...

  9. 【Java心得总结三】Java泛型上——初识泛型

    一.函数参数与泛型比较 泛型(generics),从字面的意思理解就是泛化的类型,即参数化类型.泛型的作用是什么,这里与函数参数做一个比较: 无参数的函数: public int[] newIntAr ...

  10. 初识Java泛型以及桥接方法

    泛型的由来 在编写程序时,可能会有这样的需求:容器类,比如java中常见的list等.为了使容器可以保存多种类型的数据,需要编写多种容器类,每一个容器类中规定好了可以操作的数据类型.此时可能会有Int ...

随机推荐

  1. 2539-SpringSecurity系列--在有安全验证的情况下做单元测试Test

    在有安全验证的情况下做单元测试Test 版本信息 <parent> <groupId>org.springframework.boot</groupId> < ...

  2. CSS 上下居中和最低高度语法

    /*上下居中*/ vertical-align:center; font-size=line-height; /*最低高度*/ height:auto!important; height:400px; ...

  3. centos7设置虚拟机静态ip

    转自http://blog.csdn.net/y534560449/article/details/60134301 一.设置VM的NAT方式 1.打开VM->编辑->虚拟网络编辑器-&g ...

  4. mui switch(开关)里面token不能及时更新

    做登录的时候再本地用locaStorage存了一个token值,但是登录之后进入页面里面发现一个switch开关里面的token值会跟着开关的切换在上一个token和当前的这个token值之间切换,我 ...

  5. 点击>>>解锁Apache Hadoop Meetup 2021!

    " 10月16日,属于开源发烧友的狂欢日来啦! Apache Hadoop Meetup 2021 开源大数据行业交流盛会盛大开启!让我们相约北京,一起嗨翻初秋~ 在当今信息化时代,逐渐成熟 ...

  6. 多环境配置 - SpringBoot 2.7.2 实战基础

    优雅哥 SpringBoot 2.7.2 实战基础 - 06 -多环境配置 在一个项目的开发过程中,通常伴随着多套环境:本地环境 local.开发环境 dev.集成测试环境 test.用户接受测试环境 ...

  7. BZOJ4569 [Scoi2016]萌萌哒(并查集,倍增)

    类似\(ST表\)的思想,倍增\(log(n)\)地合并 你是我家的吗?不是就来呀啦啦啦.还有要来的吗?没了!那有多少个家就映射多少答案呀 倍增原来这么好玩 #include <iostream ...

  8. 图解OSI七层模型

    七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系.它是一个七层的.抽象的模型体 ...

  9. java学习第三天常用类.day11

    工具类如何设计,在开发中有两种设计: 工具方法:静态方法的使用 非静态的方法使用: 使用单列模式,为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 保证在整个应用中某一个类有且只有一个实例(一 ...

  10. Linux操作系统学习(运维必会)

    Linux一切皆文件,最高权限的账户root. 1.开机登录 开机会启动很多进程,在Windows上叫"服务"(service),在Linux上叫做"守护进程" ...