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

下一篇文章:

相关推荐
江不清丶几秒前
垃圾收集算法深度解析:从标记-清除到分代收集的演进之路
java·jvm·算法
码农爱学习2 分钟前
使用cJosn读写配置文件
java·linux·网络
庞轩px3 分钟前
【无标题】
java·开发语言·jvm
Lyyaoo.7 分钟前
【JAVA基础面经】JAVA中的泛型
java
自然常数e11 分钟前
预处理讲解
java·linux·c语言·前端·visual studio
大数据新鸟12 分钟前
设计模式详解——模板方法模式
java·tomcat·模板方法模式
无籽西瓜a13 分钟前
【西瓜带你学设计模式 | 第四期 - 抽象工厂模式】抽象工厂模式 —— 定义、核心结构、实战示例、优缺点与适用场景及模式区别
java·后端·设计模式·软件工程·抽象工厂模式
lly20240615 分钟前
jEasyUI 创建子网格
开发语言
always_TT19 分钟前
内存泄漏是什么?如何避免?
android·java·开发语言
白鸽梦游指南21 分钟前
docker仓库的工作原理及搭建仓库
java·docker·eureka