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

下一篇文章:

相关推荐
程序员zgh10 分钟前
C++ erase() 函数用法
c语言·开发语言·c++·学习
小蒜学长24 分钟前
基于Java的公司采购系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·公司采购系统
lee_tianbai26 分钟前
Java SSM 电影票预定系统|完整前后端项目,开箱即用(源码分享)
java·开发语言·数据库
小坏讲微服务38 分钟前
Spring Boot 4 新特性全解析:从上手到生产实战
java·spring boot·后端·架构·springboot4
砚底藏山河41 分钟前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
集智飞行1 小时前
解决mavros2 ros2版本cpu占用高的问题
java·服务器·前端
迪丽热爱1 小时前
一、C语言概述与程序结构
c语言·开发语言·算法
HUIBUR科技1 小时前
AI中枢:打破数据孤岛与流程孤岛双重困境
开发语言·ai
鱼宵2 小时前
LangChain4j 结构化输出:让模型吐出 Java 对象,JSON 不再手写解析
java·开发语言·json·langchain4j