深入了解Java核心类库--泛型类

 更新时间:2021年07月29日 14:27:56   作者:入错行的北北  
这篇文章主要为大家详细介绍了java泛型类定义与使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助

1.1 泛型的使用

泛型:参数化模型(不确定,后续使用时指定类型)

1.1.1 泛型类

在这里插入图片描述

1.1.2 泛型接口

  • 实现接口时,可以选择或不选择指定泛型类型
public interface IntercaceName<T>{
	T getData();
}

①指定类型

public class Interface1 implements IntercaceName<String> {
	private String text;
	@Override
	public String getData() {
		return text;
	}
}

②不指定类型

public class Interface1<T> implements IntercaceName<T> {
	private T data;
	@Override
	public T getData() {
		return data;
	}
}

1.1.3 泛型方法

private static T 方法名(T a, T b) { }

方法仅在方法内部有效

在这里插入图片描述

1.1.4 tips 

  • 编译之后程序会采取去泛型化措施(泛型只在编译阶段有效)
  • 运行时对传入的对象进行相应类型的生成,即对象进入和离开方法的边界处添加类型检查和类型转换的方法(泛型不进入运行阶段)

1.2 泛型限制类型

  • 在使用泛型时, 可以指定泛型的限定区域
  • 必须是某某类的子类或 某某接口的实现类,格式:

<T extends 类或接口1 & 接口2>

在这里插入图片描述

1.3 通配符?

1.3.1 上界限定

  • 指了泛型类型的上届(限定了父类)

< ? extends Parent>

在这里插入图片描述

1.3.2 下届限定

  • 指定了泛型类型的下届(限定了子类)
<? super Child>

在这里插入图片描述

1.3.3 无限制

  • 指定了没有限制的泛型类型
  • 区别于Object

1.4 泛型的作用

  • 提高代码的复用率
  • 类型在使用时绑定,无序强制类型转换

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Spring与Spring boot的区别介绍

    Spring与Spring boot的区别介绍

    Spring Boot框架的核心就是自动配置,只要存在相应的jar包,Spring就帮我们自动配置。接下来通过本文给大家介绍Spring与Spring boot的区别介绍,非常不错,需要的朋友参考下吧
    2017-04-04
  • SpringBoot配置Https入门实践

    SpringBoot配置Https入门实践

    本文主要介绍了SpringBoot配置Https入门实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Spring Boot 入门教程

    Spring Boot 入门教程

    相信很多人都接触spring框架很长时间了,每次搭建spring框架的时候都需要配置好多的jar、xml,做很多繁琐重复的配置,稍微不留神就会出现各种各样的问题。今天给大家介绍一下如何利用Spring Boot快速的搭建一个简单的web应用
    2017-03-03
  • 测试springboot项目出现Test Ignored的解决

    测试springboot项目出现Test Ignored的解决

    这篇文章主要介绍了测试springboot项目出现Test Ignored的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Seata AT模式如何实现行锁详解

    Seata AT模式如何实现行锁详解

    这篇文章主要为大家介绍了Seata AT模式如何实现行锁详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 详解SpringMVC重定向传参数的实现

    详解SpringMVC重定向传参数的实现

    本篇文章主要介绍了详解SpringMVC重定向传参数的实现,我们可以使用重定向的方式,改变浏览器的地址栏,防止表单因为刷新重复提交。有兴趣的可以了解一下。
    2017-01-01
  • Spring内部bean和级联属性用法详解

    Spring内部bean和级联属性用法详解

    这篇文章主要介绍了Java内部bean和级联属性用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • maven父工程relativepath标签使用解读

    maven父工程relativepath标签使用解读

    文章主要介绍了在使用Maven构建父子工程时如何通过设置父工程和子工程的pom文件来管理依赖和版本,当子工程是Spring Boot项目时,可以通过关闭`relativePath`标签来继承Spring Boot的父工程,同时在父工程中使用`dependencyManagement`标签来统一管理Spring Boot的依赖版本
    2024-11-11
  • Idea 搭建Spring源码环境的超详细教程

    Idea 搭建Spring源码环境的超详细教程

    这篇文章主要介绍了Idea 搭建Spring源码环境,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 如何剔除eureka无效和down状态的问题

    如何剔除eureka无效和down状态的问题

    这篇文章主要介绍了如何剔除eureka无效和down状态的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论