zoukankan      html  css  js  c++  java
  • java的语法糖泛型 类型擦除

    简单的java代码, 例子来自参考[1]

     1 import java.util.Map;
     2 import java.util.HashMap;
     3 
     4 class Hello {
     5     public static void main(String[] args) {  
     6         Map<String, String> map = new HashMap<String, String>();  
     7         map.put("hello", "你好");  
     8         map.put("how are you?", "吃了没?");  
     9         System.out.println(map.get("hello"));  
    10         System.out.println(map.get("how are you?"));  
    11     }
    12 }

    编译后使用jd-gui进行反编译的代码

     1 import java.io.PrintStream;
     2 import java.util.HashMap;
     3 import java.util.Map;
     4 
     5 class Hello
     6 {
     7   public static void main(String[] paramArrayOfString)
     8   {
     9     HashMap localHashMap = new HashMap();
    10     localHashMap.put("hello", "你好");
    11     localHashMap.put("how are you?", "吃了没?");
    12     System.out.println((String)localHashMap.get("hello"));
    13     System.out.println((String)localHashMap.get("how are you?"));
    14   }
    15 }

    我们可以看出是类型擦除, 在字节码上是没有泛型的类型的, 被改为了object

    参考文献:

    1. Java语法糖的味道:泛型与类型擦除 http://icyfenix.iteye.com/blog/1021949
    2. jd-gui: http://java.decompiler.free.fr/?q=jdgui
    作者:icejoywoo
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 短网址: http://goo.gl/ZiZCi
  • 相关阅读:
    效能分析
    个人项目词频统计2
    PSP 进度条 柱状图 饼状图
    四人小组项目
    结对编程
    品评历届学生作品
    构建之法终于到手了
    补上周一的进度条进度条:
    燃尽图
    scrum站立会议
  • 原文地址:https://www.cnblogs.com/icejoywoo/p/2743080.html
Copyright © 2011-2022 走看看