开发者社区 问答 正文

java泛型的实现

java泛型的实现详细的讲一下?

展开
收起
蛮大人123 2016-02-22 15:06:11 2096 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    泛型就是一种语法糖,只在你写代码的时候方便编辑器纠错。
    举个例子,

    List list = new ArrayList<>();
    //list.add("String"); //ERROR
    list.add(10);
    System.out.println(list.get(0));
    上边被注释掉的就是错误的示例,编辑器会提醒你纠正错误。
    在经过java编译器编译成字节码后会自动去除掉泛型,同时在get方法前会强制转换为原先的类型。
    如何证明以上说法?

    public class Test{
    
        public void change(List<Integer> list){}
        public void change(List<String> list){}
    
    }

    上边这个代码就会被编译器报错,原因是List参数经过编译后类型都会被擦除,所以这两个方法的特征签名一模一样。

    2019-07-17 18:46:43
    赞同 展开评论
问答分类:
问答地址: