解决 Java 6 -> Java 7 关于遍历无序集合的迁移问题
Curing a Java 6 -> Java 7 migration issue regarding iterating over non-ordered collections
在我工作的公司,我们目前正在将所有应用程序从 Java 6 环境迁移到 Java 7 环境。一切顺利,直到我们的一些集成测试开始失败:程序输出不再与预测的程序输出匹配。
具体而言,大量应用程序的输出行顺序已更改。
通过一些代码(这花了一周多的时间),我们发现我们正在迭代许多无序集合。显然,这个的实现 - 以及输出顺序 - 在 Java 版本之间发生了变化。
我们现在的问题是,我们可能会在很多地方这样做,并且几乎不可能用手抓住它们。所以我来这里是想问一下是否存在某种全面的解决方案或一种系统的方法来查找所有出现此错误的情况。
Java 7u6 引入了一个新的字符串哈希函数,参见 Java 7 Collection Updates。默认情况下应该禁用它,但它可能会在您的环境中启用并解释迭代顺序的差异。
在我工作的公司,我们目前正在将所有应用程序从 Java 6 环境迁移到 Java 7 环境。一切顺利,直到我们的一些集成测试开始失败:程序输出不再与预测的程序输出匹配。
具体而言,大量应用程序的输出行顺序已更改。
通过一些代码(这花了一周多的时间),我们发现我们正在迭代许多无序集合。显然,这个的实现 - 以及输出顺序 - 在 Java 版本之间发生了变化。
我们现在的问题是,我们可能会在很多地方这样做,并且几乎不可能用手抓住它们。所以我来这里是想问一下是否存在某种全面的解决方案或一种系统的方法来查找所有出现此错误的情况。
Java 7u6 引入了一个新的字符串哈希函数,参见 Java 7 Collection Updates。默认情况下应该禁用它,但它可能会在您的环境中启用并解释迭代顺序的差异。