欢迎!请参阅关于页面,了解更多关于如何使用此页面的信息。
目前 count() 返回的是 int - 应将其提升为 long。
当 long 溢出时,count() 应抛出 ArithmeticException。也请参阅 CLJ-1229。
评论由:slipset 发布
查看此问题,有些类似问题如clojure.lang.RT#toArray 中的第 1658 行根据集合的计数创建一个新的 Object 数组。似乎 new Object(link: ) 需要一个 int 参数,因此在这种情况下需要将 long 强制转换为 int。
评论由:alexmiller 发布
如果您创建的 Object(link: ) 大于 2147483647,可能有其他问题。;)
是的,这个工单绝对需要更彻底的分析,看看有什么影响。在这种情况下,我认为如果计数 ≤ Integer/MAX_VALUE,则应该继续执行,否则应抛出异常。
这也会在 java.util.Collection 大小方面引起问题clojure.lang.APersistentSet#size 中的第 164 行其中大小由
http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#size() 指定