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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 原始类型是泛型擦除后生成的字节码中的实际类型。定义泛型类时,若无限定则类型变量被Object替换;若有上界限定(如T extends Comparable),则擦除为该限定类型。例如,Pair<T> 擦除为Object,而Pair<T extends Comparable> 擦除为Comparable。

原始类型 就是擦除去了泛型信息,最后在字节码中的类型变量的真正类型,无论何时定义一个泛型,相应的原始类型都会被自动提供,类型变量擦除,并使用其限定类型(无限定的变量用Object)替换。举例说明
class Pair {
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 {}
此时原始类型就是Comparable,而不再是Object

相关文章
|
2月前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba诞生
阿里基于Spring Cloud打造Alibaba生态,推出Nacos、Sentinel、Seata等核心组件,覆盖服务发现、配置管理、流量控制与分布式事务,形成完整微服务解决方案,获Spring官方认可,推动Spring Cloud在企业级场景高效落地。
|
2月前
|
数据安全/隐私保护
RBAC权限模型
RBAC(基于角色的访问控制)通过角色管理权限,实现用户与权限的间接关联,提升系统安全性与管理效率。其三大原则:最小权限、职责分离、数据抽象,使权限分配更清晰、灵活,广泛应用于现代权限管理系统中。
|
2月前
|
存储
初始化Map大小并非用多少指定多少
初始化HashMap时,指定容量并非直接生效,而是会调整为最近的2的幂次(如1变2,7变8)。为避免扩容开销,建议使用Guava工具Maps.newHashMapWithExpectedSize(),或手动按公式:容量 = 预期元素数 / 0.75 + 1 设置。
|
2月前
|
Java 大数据
ArrayList扩容机制
ArrayList添加元素时,先调用ensureCapacityInternal()确保容量,首次添加时默认扩容至10。add方法实质是为数组赋值。ensureExplicitCapacity()判断是否需扩容,当容量不足时调用grow()。grow()将容量扩大1.5倍(old + (old &gt;&gt; 1)),并通过Arrays.copyOf()完成数组复制。size()用于集合元素计数,length为数组属性,length()为字符串方法。
|
2月前
|
运维 Kubernetes Java
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,帮助理解分布式系统的网络架构与运维部署,是开发与运维协同的重要建模工具。
|
2月前
|
领域建模
领域模型图(数据架构/ER图)
数据架构核心输出为ER图,包含实体、关系与属性,用于构建数据模型。通过业务域分解与领域建模,结合四色原型法(MI红色、PPT绿色、Role黄色、DESC蓝色)抽象业务,逐步提炼系统数据架构。
|
2月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过生命线、控制焦点和消息展示动态协作。支持同步、异步与返回消息,可直观表达并发过程与方法调用,是分析系统行为的重要工具。(238字)
分布式应用架构
分布式应用架构图展示产品内部及与外部系统的应用调用关系,体现SOA架构下的逻辑与通信连接。重点呈现应用间的内外部依赖,清晰反映产品在整体业务中的定位与影响,不包含服务注册、治理等RPC技术细节。(238字)
|
2月前
|
数据挖掘
展现层
展现层是用户与系统交互的入口,根据不同用户类型提供差异化服务:为实操层用户支持日常业务操作,为管理层用户提供运营与团队数据分析以优化管理,为决策层用户呈现经营诊断报告,助力战略决策,实现分层高效交互。
|
2月前
|
开发框架 微服务
应用架构图
在业务架构基础上,技术架构承接应用需求,明确技术选型与分层设计。涵盖开发语言、框架、微服务分层及非功能性需求,通过关键技术选型与层级关系梳理,形成完整的技术架构图,实现产品需求到技术落地的转化。(238字)