在java里面用下面的代码有什么不妥之处么?比如从代码的可维护性等方面考虑。
比如,下面两个地方的"a"也许在以后的java版本中不是一个对象,用考虑这种可能性么??HashMap hm = new HashMap();hm.put("a", "value1");Object value = hm.get("a");

解决方案 »

  1.   

    没看明白以后的java版肯定是向下兼容的!
      

  2.   

    楼主多虑了。考虑这个可能性跟考虑Java被淘汰的可能性一样没有意义!
      

  3.   

    我写的简略了,写详细点:在java里面用下面的代码有什么不妥之处么?比如从代码的可维护性等方面考虑。
    比如,下面两个地方的"a"在目前java版本中都是一个对象,都指向同一个引用。但是有没有可能在以后的java版本中下面两个地方的"a"是两个不同的对象呢,用考虑这种可能性么??如果是两个不同的对象,那么下面的get方法将返回nullHashMap hm = new HashMap();
    String key = "a";
    hm.put(key, "value1");Object value = hm.get("a");
      

  4.   

    HashMap是通过equal来判断key的,又不是引用
      

  5.   

    x == y || x.equals(y);
    符合这个就行了.考虑这个没必要, 如果不保证兼容性, 谁还去用...
      

  6.   

    错误, HashMap 是同时用 hash 和 equals 来判断 ,
    贯彻了覆盖 equals 同时也应该 覆盖 hashCode 的意思,
      

  7.   

    不用多虑,以后的Java版本也会让你的方法仍然有效。
    除非新版本有Bug,且无人维护。
      

  8.   

    本人遇到的头痛的问题:
    HashMap hm = new HashMap();
    String key = "a";
    hm.put(key, "value1");String xx=(String)hm.get("a");xx得到了一个NULL值,怎么会这样呢?写成String xx=hm.get("a").toString();XX还是一个NULL值.怎么回事呢?
      

  9.   

    但我的就出了,是不是JDK版本的问题呢?j2sdk1.4.2 b28
      

  10.   

    这个我也考虑过,用一个字符串来 作为KEY,是否合适,
    可以当然是可以,(目前我也是这么写的)可是万一,字符串,不是共享的对象呢?那样hash就不一样了。不过,我想这种担心是多余的,java 中String的处理方式不会改变。回复人: songthing(逸虹千里·儒俊丹枫) ( ) 信誉:95  这种事情,还真没见过.String xx=(String)hm.get(key);如果还出错.看一下 hm的内容吧
    .
      

  11.   

    java就是为了向下的兼容性,保留了很多jdk1.0开始的一些问题,没有解决.
      

  12.   

    既然KEY和VALUE都是STRING为什么不使用PROPERTIES呢?
      

  13.   

    HashMap hm = new HashMap();
    String key = "a";
    hm.put(key, "value1");String xx=(String)hm.get("a");
    xx 不为 null
      

  14.   

    HashMap其实就是一个数组,数组的元素之间又存在类似链表的关系.Hashmap的寻址就是根据Key这个Object的HashCode来进行散列查找.如果你这个Key的Object的值不变,所生成的HashCode肯定是不变的,寻址出来的Value也是相同.