日期:2014-05-20  浏览次数:20777 次

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

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

------解决方案--------------------
你要知道你的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


就是上面那些所有已知实现类中的对象。


否则就不能进行强制类型转换