欢迎!请参阅关于页面,了解更多有关如何使用本站的信息。
目前count()返回int类型 - 应将其提升为long类型。
在long类型溢出时,count()应抛出ArithmeticException异常。也请参见CLJ-1229。
评论由:slipset提供
查看这个问题,存在一些问题,如在clojure.lang.RT#toArray的第1658行中,根据集合的计数创建一个新的Object数组。看起来new Object()需要一个int类型的参数,因此必须将long值强制转换为int才能使此操作可行。
评论由:alexmiller提供
如果您创建的Object()大于2147483647,您可能还有其他问题。 ;)
但是的,这个工单确实需要更彻底的分析,以确定影响的内容。在这种情况下,我认为如果计数<=Integer/MAX_VALUE,则应继续进行,否则应抛出异常。
嗯,这也引发了有关java.util.Collection size的问题在clojure.lang.APersistentSet#size的第164行其中大小由
http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#size()指定