在我工作的公司,我们目前正在将所有应用程序从Java 6迁移到Java 7环境。一切顺利,直到我们的一些集成测试开始失败:程序输出不再与预期的程序输出相匹配。
具体而言,对于大量应用程序,输出行的顺序发生了变化。
通过一些代码(这花费了一个多星期的时间),我们发现我们正在迭代一些无序的集合。显然,这一实现--以及输出顺序--在Java版本之间发生了变化。
我们现在的问题是,我们很可能在很多地方都这样做,而用手抓它们几乎是不可能的。所以,我在这里要问的是,是否有一些全面的解决办法,或一个系统的方法,以发现所有的错误发生。
发布于 2016-06-15 21:41:42
Java7u6为字符串引入了一个新的散列函数,请参阅Java 7集合更新。默认情况下应该禁用它,但是它可以在您的环境中启用,并解释迭代顺序上的差异。
https://stackoverflow.com/questions/37783553
复制相似问题