[Linux] Ubuntu 12.04 配置openjdk7的源码文件以及java里面HashMap的初始化

最近使用到了map,以前在.net里面是类似dictionary的类,java的一个实现是hashmap。但是这个的初始化远没c#语法来的方便,所以找了找最快捷的初始化方式:

1 public static HashMap<Integer, Integer> FieldHeaderMapping = new HashMap<Integer, Integer>(){
2         {
3             put(0,NAME);
4             put(1,AGE);
5                 }}

里面两个大括号的使用方法看起来很诡异,又搜了搜对此的注解说明。

第一个大括号是声明了一个匿名类,继承自HashMap,本例中是作为一个子类赋值给了FiledHeaderMapping对象。

第二个大括号是代表该匿名类的构造函数,<init>方法,实例化一个,里面放进去两个put()语句,这个子类里面不就有值了么。

随即想到了这么做的两个缺点:

1. 传回的是一个HashMap的子类,不是HashMap,涉及到某些特殊处理的,如需要Xnode或者XStream之类的对象,handler只认识特定的类,子类拿过来是没法处理的。

2. 写着写着忘了。。

认真学习完了java,看到有的同学为了探究java之根本,反编译了.class文件,看来nb的都喜欢反编译和读源码,何不找个源码来看看HashMap,apt里面搜了一下还真有:

sudo apt-cache search java

那就果断安装啊。

 sudo apt-get install openjdk-7-source

装完了在eclipse里面F3,看不到。囧。看来还没那么智能,自己找一下映射吧。。

结果发现openjdk-7-source不知道装在了哪里。。。

本着自己努力挖掘少用搜索引擎的原则。我想了半天想到了dpkg命令。

dpkg --help

先list全部:

sudo dpkg -l | grep jdk

然后就看到了安装的包: openjdk-7-source

再看看dpkg的参数:-L查看所有属于这个包的文件!

dpkg -L openjdk-7-source

哇卡卡,找到了,在eclipse里面先在HashMap上点F3,点击attach source,把src.zip找到,ok了

原文地址:https://www.cnblogs.com/lin2yatou/p/3663365.html