今天碰到个问题,起初看的时候一脸懵逼,后面追溯问题根源,发现是 kotlin 里的一个坑。看下代码:
1 | override fun showRoadCondition(list: List<MyObject>) { |
这样一个方法,需要将列表的数据,根据 8 个一组进行划分。subList 生成的一个 List 不是我们平常使用的 List,所以后面加上了 kotlin 自带的 toList() 方法,来转化成真正的 List。
这段代码在大多数情况下都没有什么问题,但是当 list 的长度为 9、17、25等等时就会崩溃。所报异常为:
1 | java.util.Collections$SingletonList cannot be cast to java.util.ArrayList |