在Java 6中编译,在7中运行 - 如何指定useLegacyMergeSort?
我想知道如果我用Java 6编译,但是有人在Java 7上运行该程序,会使用Java 6或7版本的Arrays.sort吗?
这很重要,因为新的 mergesort 会抛出一个 IllegalArgumentException,而旧的则不会(请参阅比较方法违反了其总协定!仅 Java 7)
现在,可以使用Arrays.useLegacyMergeSort在Java 7中编译,但显然该标志不适用于Java 6 - 我们希望在Mac OS Snow Leopard(使用6)上兼容。
由于某种原因(参见 http://madbean.com/2006/target14/),-target编译器标志似乎没有产生兼容的代码,所以我们宁愿用Java 6编译。
有什么建议吗?