什么是泛型擦除后保留的原始类型

简介: 原始类型是泛型擦除后在字节码中的实际类型。若无限定,泛型变量默认替换为Object;若有上界限定(如T extends Comparable),则替换为该限定类型,例如Comparable。

原始类型 就是擦除去了泛型信息,最后在字节码中的类型变量的真正类型,无论何时定义一个泛型,相应的原始类型都会被自动提供,类型变量擦除,并使用其限定类型(无限定的变量用Object)替换。举例说明

class Pair<T> {  
    private T value;  
    public T getValue() {  
        return value;  
    }  
    public void setValue(T  value) {  
        this.value = value;  
    }  
}

其对应的原始类型就是

class Pair {  
    private Object value;  
    public Object getValue() {  
        return value;  
    }  
    public void setValue(Object  value) {  
        this.value = value;  
    }  
}

但如果该类的定义有限定,比如继承了,那么就会产生变化:

public class Pair<T extends Comparable> {}

此时原始类型就是Comparable,而不再是Object

相关文章
|
8小时前
|
前端开发 数据可视化
什么是低代码
用户可通过拖拽生成前端表单页面,界面直观易用,支持可视化编辑,提升开发效率。配合参考文档,快速上手操作,适用于各类表单设计场景。
|
8小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
本文深入解析Thread.Sleep函数的原理与应用。通过生动的“分蛋糕”比喻,对比Unix时间片与Windows抢占式调度机制,阐明Sleep(1000)不保证精确唤醒、Sleep(0)实为触发CPU重新竞争等核心概念,揭示多线程调度的本质。
|
8小时前
|
Java 调度
线程池初探
线程池通过复用线程提升性能,避免频繁创建销毁的开销。它统一管理线程,支持任务提交、周期执行与调度,使用简单且高效,是多线程编程的重要工具。
|
8小时前
|
存储 Java 编译器
泛型擦除引起的问题及解决方法
本文深入解析Java泛型机制,涵盖类型擦除、编译时检查、引用传递、自动类型转换及与多态的冲突。重点说明泛型类型检查针对引用而非对象,静态成员不能使用类的泛型参数,且泛型不支持基本数据类型。同时探讨了泛型在继承中的桥方法实现与instanceof限制。
|
8小时前
|
存储 Java
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译后会进行类型擦除,仅保留原始类型。例如,List&lt;String&gt;和List&lt;Integer&gt;在运行时均变为List,泛型信息不复存在。通过反射可向声明为Integer的列表添加字符串,证明泛型类型被擦除,JVM无法感知其原始泛型约束。
|
8小时前
|
存储 运维 Java
微服务概述
本文对比单体应用与微服务架构,阐述微服务的定义、核心特征及优缺点。微服务通过业务拆分,实现服务独立开发、部署与技术选型,提升系统扩展性与维护性,但也带来运维复杂、分布式事务等挑战,需结合SpringCloud等技术实现高效治理。
|
9小时前
|
存储 NoSQL 定位技术
MongoDB的特点
MongoDB具备高性能、高可用、高扩展特性,支持丰富查询语言。其嵌入式数据模型减少I/O,多存储引擎适应多样场景,副本集保障数据冗余与自动故障转移,分片实现水平扩展,满足海量数据存储与高效访问需求。
|
8小时前
|
JSON NoSQL 关系型数据库
MongoDB简介
MongoDB是一款开源、高性能、无模式的文档型数据库,采用类似JSON的BSON格式存储数据,结构灵活,支持复杂数据类型。它兼具NoSQL的扩展性与类关系型数据库的操作体验,适用于快速开发和高并发场景。
|
9小时前
|
存储 NoSQL 定位技术
MongoDB什么时候用
适用于无需复杂事务、需快速迭代、高并发读写、海量数据存储(TB至PB级)、易扩展、高可用(99.999%)、支持地理与文本查询的应用场景。满足1项即可考虑MongoDB,2项以上强烈推荐。
|
8小时前
|
存储 NoSQL 物联网
MongoDB应用场景
MongoDB适用于社交、游戏、物流、物联网及视频直播等场景,擅长处理数据量大、读写频繁、事务性要求不高的应用。其灵活的文档模型和高效查询能力,支持用户信息、日志、订单状态等复杂数据的存储与访问。