【Java】泛型擦除机制

擦除机制 :将一个List集合泛型赋值给一个没有使用到泛型List集合,直接去除泛型

示例代码

java 复制代码
package com.collection.Demo06;

import java.util.ArrayList;
import java.util.List;

/**
 * 泛型擦除机制
 */
public class Test06 {
    public static void main(String[] args) {
        /**
         * 泛型原理 底层 使用擦除机制
         * 泛型 是在编译阶段限制传递的类型
         */
        List<String> strs = new ArrayList<>();
        strs.add("mayikt");//输入参数 String
        //擦除机制:将一个List集合 泛型 赋值给一个没有使用到泛型List集合,直接去除泛型
        List list = strs;
        list.add(3);//输入参数 Object
        list.add("mayikt");
        /**
         * 泛型 是在编译阶段限制传递类型 在运行阶段都是擦除
         * 底层 class 文件在运行 里面是没有泛型的
         * 如何证明?
         * java源代码->编译成class
         * xjad反编译工具
         */
    }
}
java 复制代码
package com.collection.Demo06;

public class Meite<T> {
    private T t;

    public T add() {
        return t;
    }
}
/**
 * java源代码->编译成class
 * xjad反编译工具
 * 将Meite.class反编译为Meite.java如下:
 *
 * public class Meite
 * {
 *
 * 	private Object t;
 *
 * 	public Meite()
 *        {
 *    }
 *
 * 	public Object add()
 *    {
 * 		return t;
 *    }
 * }
 */

下一篇文章:

相关推荐
程序员黑豆5 分钟前
Java变量详解:从入门到精通
java·前端·ai编程
karry_k6 分钟前
Skill 到底是什么?从提示词、脚本到多智能体工作流的完整指南
java·人工智能·后端
qq_4017004119 分钟前
Qt自定义信号槽详解:带参发射 vs sender()获取,两种多信号关联方案全掌握
java·数据库·qt
啊哈一半醒27 分钟前
Go 语言 Context 全方位详解:原理、实战与避坑
开发语言·后端·golang
铅笔侠_小龙虾30 分钟前
rust 学习(9):结构体
开发语言·学习·rust
此生决int40 分钟前
深入理解C++系列(11)——stack、queue和priority_queue
开发语言·c++
周杰伦fans1 小时前
数列极限的定义
java·开发语言
小白的后端世界1 小时前
LangChain 模型初始化参数详解:从基础配置到企业级实践
java·人工智能·langchain
广州浮点FLOATLIC1 小时前
Mentor Graphics浮动许可证管理为什么一到流片节点就失控
java·大数据·数据库·许可证管理·cad 许可证优化
Loongproxy1 小时前
大规模采集为啥用隧道代理IP?会话保持如何做到无感轮换
java·服务器·网络