java顺序排序jre,java – 使用JRE 1.7排序时哪个类抛出IllegalArgumentException?

我在

Java7中使用Collections.sort()遇到了(显然是臭名昭着的)IllegalArgumentException

多亏了我理解原因,这基本上是(咳嗽)糟糕的代码.

问题是,我无法自己重现异常.我做了一些jdk源代码挖掘,并找到了哪个类抛出异常.我们的想法是创建相应的测试用例.

顺便说一句,这是代码

@Override

public int compareTo( Symbol other) {

if( this.lastUse == 0) {

if( other.lastUse != 0) return (int)( -DateMicros.ONE_DAY);

} else if( other.lastUse == 0) {

return ( int)DateMicros.ONE_DAY;

}

return ( int)( this.lastUse - other.lastUse);

}

< / pride>

除此之外,“lastUse”被分配时间戳,以微秒和毫秒为单位(是混合的),这给出了极好的int溢出溢出

实际问题是:

什么价值观会导致此代码崩溃?在路上得到一个合适的测试案例.

使用堆栈跟踪更新:

at java.util.ComparableTimSort.mergeHi(Unknown Source)

at java.util.ComparableTimSort.mergeAt(Unknown Source)

at java.util.ComparableTimSort.mergeCollapse(Unknown Source)

at java.util.ComparableTimSort.sort(Unknown Source)

at java.util.ComparableTimSort.sort(Unknown Source)

at java.util.Arrays.sort(Unknown Source)

at java.util.Collections.sort(Unknown Source)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值