[I cannot be cast to java.lang.Comparable

如果你是在Set集合和List集合的相互转化,或者是数组转集合中出现了这个异常,你可以检查一下是不是用了基本数据类型的数组来进行集合的转换,

这个异常一开始的[I 可以看出这是没有重写Object的toString而打印出的Object中的toString方法的开始的两个字符。

这两个字符当然不能进行正常的类型转换了。因为这个异常是将数组的地址作为元素存储在集合中了,

(我认为可能是你在数组中存储的值是基本数据类型,而集合中只能存储对象,无法存储基本数据类型,转换集合的时候只能将是对象的字符串类似[I@27c170f0的值存储到集合中了)

ps:如果你想数组转集合后增加或者删除集合中的元素,又不想要数组中的元素发生改变就再声明一个集合,把刚才转换的集合用addAll()方法放进新声明的集合中就可以正常的增删改这个集合中的元素了。

如果不是这个集合转换的代码,可能也是这种集合中存储的值不是你想要的值发生的问题。如果有其它问题或者发现我出错了,请留言告诉我,先行谢过。

 

posted @ 2019-07-20 23:36  吃喵的鱼喵喵喵  阅读(936)  评论(0编辑  收藏  举报