【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;
 *    }
 * }
 */

下一篇文章:

相关推荐
小马爱打代码7 分钟前
Spring AI:文生图:调用通义万相 AI 大模型
java·人工智能·spring
郝学胜-神的一滴9 分钟前
Linux定时器编程:深入理解setitimer函数
linux·服务器·开发语言·c++·程序人生
摇滚侠13 分钟前
2025最新 SpringCloud 教程,网关功能、创建网关,笔记51、笔记52
java·笔记·spring cloud
cici1587414 分钟前
基于反向传播算法实现手写数字识别的MATLAB实现
开发语言·算法·matlab
又是忙碌的一天25 分钟前
Socket学习
java·学习·socket
香吧香42 分钟前
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
java·spring boot·spring cloud
浓墨染彩霞1 小时前
Java-----多线路
java·经验分享·笔记
清晓粼溪1 小时前
SpringMVC02:扩展知识
java·后端·spring
曹牧1 小时前
Java String[] 数组的 contains
java·开发语言·windows
yong99901 小时前
LSD直线提取算法 MATLAB
开发语言·算法·matlab