zoukankan      html  css  js  c++  java
  • [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了

  • 相关阅读:
    OAuth2.0标准类库汇总
    RabbitMQ:Docker环境下搭建rabbitmq集群
    WCF&AppFabric :异常消息: 内存入口检查失败
    前端框架Vue、Angular、React
    串口驱动开发
    组合而不是继承,单一职责
    项目管理的一个月
    软件架构的一个设想以及谈一下过去两年开发软件的过失
    TCP中需要了解的东西
    C++编程新思维中的技巧
  • 原文地址:https://www.cnblogs.com/lin2yatou/p/3663365.html
Copyright © 2011-2022 走看看