为了账号安全,请及时绑定邮箱和手机立即绑定

Java中泛型中擦除的概念是什么?

Java中泛型中擦除的概念是什么?

SMILET 2019-06-18 14:59:48
Java中泛型中擦除的概念是什么?Java中泛型中擦除的概念是什么?
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

擦除,字面意思是从编译好的字节码中删除源代码中存在的类型信息。让我们用一些代码来理解这一点。

import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class GenericsErasure {
    public static void main(String args[]) {
        List<String> list = new ArrayList<String>();
        list.add("Hello");
        Iterator<String> iter = list.iterator();
        while(iter.hasNext()) {
            String s = iter.next();
            System.out.println(s);
        }
    }}

如果您编译了这段代码,然后用Java反编译器反编译它,您将得到类似的结果。注意,反编译代码不包含原始源代码中存在的类型信息的跟踪。

import java.io.PrintStream;import java.util.*;public class GenericsErasure{

    public GenericsErasure()
    {
    }

    public static void main(String args[])
    {
        List list = new ArrayList();
        list.add("Hello");
        String s;
        for(Iterator iter = list.iterator(); iter.hasNext(); System.out.println(s))
            s = (String)iter.next();

    }}


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 996 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信