• [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了

  • 相关阅读:
    SqlServer 查看被锁的表和解除被锁的表
    Windows Server 2012 R2 或 2016 无法安装 .Net 3.5.1
    请求文件下载URL过长处理
    T4语法
    windows下 安装 rabbitMQ 及操作常用命令
    ubuntu系统启动qtceator时提示:Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库
    升级到VS2013常见问题
    Windowns 无法启动 Office Software Protection Platform 服务,系统找不到指定的文件
    SVN clean失败解决方法
    使用PostSharp在.NET平台上实现AOP
  • 原文地址:https://www.cnblogs.com/lin2yatou/p/3663365.html
Copyright © 2020-2023  润新知