首页 > 编程语言 >Java泛型

Java泛型

时间:2023-05-08 12:56:02浏览次数:33  
标签:Java 自定义 List 接口 类型 泛型 new

泛型使用

泛型的本质是参数化类型
1、

List<T>{} public class HashSet<E>{}

T和E必须是引用类型不能是基本类型
2、使用

List<Integer> list = new ArrayList<Integer>();
//后面可以直接缺省java编译器会帮我们自动推断
List<Integer> list = new ArrayList<>();

3、如果不写默认为Object类

List list = new ArrayList();

自定义泛型

自定义泛型类

语法格式

class<T, E,> 类名{}

1、普通成员均可以使用泛型
2、静态成员不能使用泛型
3、泛型数组不能初始化
4、泛型的类型是在创建对象时确定的

自定义泛型接口

语法格式

interface 接口名 <T, E,> {}

1、接口中的静态成员也不能使用泛型
2、接口中的泛型在继承接口或实现接口时确定类型
3、没有指定类型,默认Object

自定义泛型方法

语法格式

修饰符 <T, E,> 返回类型 方法名(参数列表) {}

1、泛型方法可以定义在普通类】也可以定义在泛型类
2、泛型方法在被调用时确定其类型
3、注意区别,方法使用泛型和泛型方法

泛型的继承和通配

1、泛型不具备继承

List<?>:可以接收任何类型
List<? extends Employee>:可以接收Employee的子类(包括非直接子类)
List<? super Employee>:可以接收Employee的父类(包括非直接父类)

标签:Java,自定义,List,接口,类型,泛型,new
From: https://www.cnblogs.com/cxy8/p/17381393.html

相关文章

  • Java 几种任务调度的实现方法与比较
    几种任务调度的Java实现方法与比较综观目前的Web应用,多数应用都具备任务调度的功能。本文由浅入深介绍了几种任务调度的Java实现方法,包括Timer,Scheduler,Quartz以及JCronTab,并对其优缺点进行比较,目的在于给需要开发任务调度的程序员提供有价值的参考。 任务调度是指......
  • java链表的疑惑
    head.next=tail; tail=newListNode();为什么head.next不等于tail在cpp里面head->next=tail;tail=newListNode();这时head->next==tail.这是因为head->next存放的是tail的地址,而java中head.next=tail; tail=newListNode();head.next存放的是tail的之前......
  • java: 错误: 无效的源发行版:17
    最近想在本地新建maven项目写写demo的,但是运行时提示java:错误:无效的源发行版:17错误。在这里记录一下,方便后面查看。1、修改IDEA设置JDK版本File-->Settings-->Build,Execution,Deployment-->Compiler-->JavaCompilerProjectStructure查看这两个设置......
  • 【JavasSript】后台返回 csv base64 下载
    constexort=async()=>{try{const{data}=awaitzhjxDownloadFile({meta:{user_token:localStorage.getItem('user_token'),file_name:activeName.value,image_indexs:activePage.value,},......
  • 《java接力》springboot篇——注解
    注解后续补充常用注解aspect参考链接:https://zhuanlan.zhihu.com/p/351468451需要依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>......
  • java.io.FileNotFoundException: class path resource [bean.xml] cannot be opened b
    出现这个报错Exceptioninthread"main"org.springframework.beans.factory.BeanDefinitionStoreException:IOExceptionparsingXMLdocumentfromclasspathresource[bean.xml];nestedexceptionisjava.io.FileNotFoundException:classpathresource[bean.......
  • Python 和 JavaScript 的区别是什么?
    Python和JavaScript是两门非常流行的编程语言,它们各自有着独特的特点和应用场景。Python和JavaScript是两种不同的编程语言,它们的设计目标和应用场景有所不同。Python是一种多用途、高级、解释型的编程语言,可用于开发各种应用程序,包括Web开发、数据分析、人工智能、科学计算......
  • JavaScript原生兼容大全-持续更新
    JavaScript兼容-持续更新1.css非行内样式操作//currentStyle用于IE低版本getComputed用于主流浏览器//element目标元素attribute目标属性functiongetStyle(element,attribute){returnelement.currentStyle?element.currentStyle(attribute):getComputed(el......
  • Java反射--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本
    >Java反射--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本前言序言再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点。适合阅读人群Java学习者和爱好者,有一定工作经验的技术人,准面试官等。阅读建议本教程是系列教程,包含Java基础,JVM,容器,......
  • 在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
    操作背景:我在eclipse建立了个HelloWorld.java文件,格式UTF-8,然后复制保存到C:\Users\alex\test目录下,在此处运行按住Shift+右键调出cmd命令窗口,输入命令:javac HelloWorld.java,然后报错:HelloWorld.java:6:错误:编码GBK的不可映射字符解决办法:方法一:带上编码utf-8,运行命令:javac-e......