泛型的使用

简介: 今天和考上研究生的老同学聊了一会,知晓他在重新学习Java,并且学到了泛型这个地方,所以今天来总结一下泛型这个地方。

正篇

首先让我们看看它的定义,知晓何为泛型:

定义类时并不固定数据类型,等到创建对象或调用方法时再明确数据类型。

而且它有着以下性质:编译过程中,由编译器检查类型安全,自动隐性地对类的数据类型进行强制转换(Object -> 指定数据类型)。编译后生成的字节码文件(.class) 将不再含有泛型。

那么我们如何在代码中使用泛型呢?

如下代码:

// 定义时使用泛型
public class Person<T> {
    private T t;
    public void set(T t) {
        this.t = t;
    }
    public T get() {
        return t;
    }
} 
// 调用时指定类型
class Test{
    static void main(String[] args){
        Person<Integer> teacher = new Person<>();
        teacher.set(0);
        System.out.print(teacher.get());
    }
}

而代码中< T>的字母

通常可使用 A-Z 之间的任何一个字母,而我们常用的如下所示:

  • T (type): 表示具体的一个 java 数据类型
  • K V (key value): 分别代表 java 键值中的 Key Value,在键值对中如Map中常用
  • E (element): 代表 java 集合框架元素
  • ?:表示不确定的 java 类 由上例,我通俗的称泛型为我们需要适应不同环境的数据类型(泛用)。

总结

总结完泛型后我们回到开篇时说的,我和他聊了很多近况,发现研究生的确很好,还有大量的时间去整理知识,不过就是实践的机会较少,但可能是单例的原因,可我还是觉得也许还是工作中成长的更快,尽管我很羡慕能继续深造的他们。

之前总结的东西都过于疏浅,所以后面的更新应该会深入知识点,结合源码去分析,不能再这么草草结束文章。

相关文章
|
Linux 开发者
微处理器移植Linxu的GPIO操作
微处理器移植Linxu的GPIO操作
148 0
|
前端开发 计算机视觉
InstantStyle,无需训练,风格保留文生图
InstantStyle 是一个通用框架,它采用两种简单但有效的技术来实现风格和内容与参考图像的有效分离。
|
存储 Java 关系型数据库
数据传输DTS数据问题之数据写入异常如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
数据传输DTS数据问题之数据写入异常如何解决
|
传感器 监控 物联网
探索未来科技的边界:区块链技术、物联网与虚拟现实的融合趋势
【8月更文挑战第31天】 随着技术的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的工作和生活方式。这些技术不仅在各自的领域内发展迅速,而且它们之间的交叉融合预示着一个全新的创新时代的到来。本文将探讨这些技术的最新发展趋势,分析它们如何相互影响并共同塑造未来的应用场景,同时通过实际代码示例加深理解。我们将从基础概念出发,逐步深入到技术细节和应用实例,以期为读者提供一个全面而深刻的技术洞察。
|
Linux 计算机视觉
【Linux】ubuntu1804配置opencv4.5.5
【Linux】ubuntu1804配置opencv4.5.5
276 0
|
Ubuntu Linux Windows
串口模拟工具实现测试
串口模拟工具实现测试
450 0
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功 能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累 加值放入数组中
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功 能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累 加值放入数组中
152 0
|
算法 测试技术
重温算法之括号生成
对于需要一直寻找到最终结果或者条件的题目,一般使用回溯算法,还有就是不要忽略题目的隐藏的一些点,如果忽略,可能某个测试用例就会报错,同时也要做判空处理。
151 0
重温算法之括号生成
|
存储 XML 网络协议
Android校招复习资料整理
Android校招复习资料整理
|
JSON 前端开发 JavaScript
SpringMVC详解及SSM框架整合项目【上】
SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力 SpringMVC + Vue + Spri