需要把Object类型转换成List类型,但是总是报ClassCastException的异常,请问能不能直接转换?若不行怎样间接转换?谢谢!

解决方案 »

  1.   

    楼主看起来是初学者吧,你问的是向上和向下转型的问题,向上转型直接转就是了,子类跟超类是同一类,所以一定不会出这个异常,但如果向下转型的话,就要先判断它的实际类型,类型一致就可以转换,不一致的话,就会抛ClassCastException,你这里出现这个异常,说明你的Object的实际类型不是LIST类型,所以出错。
      

  2.   

    当然可以强制转换,但是前提是你的Object必须是List对象初始化的,否则当然要报错了
      

  3.   

    那怎么才能实现List对象初始化啊。我的代码如下:
    TreeMap tm = new TreeMap();if(tm.containsKey(DM){                 {
        Object  te= tm.get("DM");
        List lst = (List)te;
        lst.add(obj);
    }
      

  4.   

    你要知道你的tm.get("DM");取出来的是什么类型的对象啊,必须要是List的所有子类对象,比如java.util.ArrayList、java.util.LinkedList等等
    java.util 
    接口 List<E>
    所有超级接口: 
    Collection<E>, Iterable<E> 
    所有已知实现类: 
    AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector 
    就是上面那些所有已知实现类中的对象。
    否则就不能进行强制类型转换
      

  5.   

    就是TreeMap tm = new TreeMap();应该有一句:
    tm.put("DM",object);
    这个object必须是List类型的