最近写代码的时候碰到一个以前没有见过的错误(如下图),找了很久也不知道是什么原因。
报错的代码如下:
在网上查了很多博客,基本上都是说使用Iterator(迭代器)的时候出现了多次遍历的问题。
因为Iterator的max和min方法是TraversableOnce(可遍历一次,遍历过一次之后迭代器就变为空的了)类型的,所以当第二次调用同样的方法,或第一次调用max方法第二次调用min方法时,第二次调用的方法会出现上面的错误。
但是很明显我这里的 WS4_FOR_res2 的数据类型是List,并不是iterator。所以不因该是上述原因导致的错误。
后来想了很久,终于发现是由于WS4_FOR_res2有可能为空,当该对象为空的时候,调用min和max方法也会出现empty.min(empty.max)这样的错误。
欢迎关注我的公众号——数据杨公子。本公众号会分享包括但不限于大数据、数据治理、元数据管理、python 等方面的技术文章,主旨是和大家一起共同成长,用技术来认识我们这个数据的时代。