`

JDK1.7 不兼容compare方法

    博客分类:
  • J2EE
阅读更多
java.lang.IllegalArgumentException: Comparison method violates its general contract!

网上查到一个解释:

Description: The sorting algorithm used by java.util.Arrays.sort and (indirectly) by java.util.Collections.sort has been replaced. The new sort implementation may throw an IllegalArgumentException if it detects a Comparable that violates the Comparable contract. The previous implementation silently ignored such a situation. If the previous behavior is desired, you can use the new system property, java.util.Arrays.useLegacyMergeSort, to restore previous mergesort behavior.
也就是说jdk 7的sort函数的实现变了,造成了这个问题,具体原因未知。

改一下系统设置,还是选择使用老版本的排序方法,在代码前面加上这么一句话:System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
// return a_actorDetails1.getId() - a_actorDetails2.getId() 改为一下
// double 直接return不支持。
if (a_actorDetails1.getId() - a_actorDetails2.getId() > 0) {
                comparisonResult = 1;
            }
            else if (a_actorDetails1.getId() - a_actorDetails2.getId() == 0) {
                comparisonResult = 0;
            }
            else {
                comparisonResult = -1;
            }
            break;
分享到:
评论

相关推荐

    Maven兼容jdk1.7版本

    【标题】"Maven兼容jdk1.7版本"指出的核心知识点是关于Apache Maven的一个特定版本——3.0.5,这个版本与Java Development Kit (JDK) 1.7(也称为Java 7)有着良好的兼容性。在软件开发过程中,构建工具如Maven与...

    jdk1.7_linux Linux版零积分免费下载

    jdk1.7_linux Linux版零积分jdk1.7_linux Linux版零积分免费下载jdk1.7_linux Linux版零积分免费下载jdk1.7_linux Linux版零积分免费下载jdk1.7_linux Linux版零积分免费下载jdk1.7_linux Linux版零积分免费下载jdk...

    jdk1.7安装包下载

    4. **多变量语法**:JDK1.7引入了` varargs `语法的扩展,允许在方法声明中使用多个相同类型的变量,提高了代码的可读性。 5. **类型推断**:编译器可以更智能地推断局部变量的类型,减少了冗余的类型声明,如`钻石...

    JDK 1.7压缩包.zip

    **JDK 1.7详解** Java Development Kit(JDK)是Oracle公司提供的用于开发和运行Java应用程序的软件工具包。JDK 1.7,也称为Java SE 7(Java Standard Edition 7),是Java语言的一个重要版本,它包含了编译器、...

    jdk1.7版本免安装

    Java Development Kit (JDK) 是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具。...如果你需要使用特定功能或与旧项目保持兼容,JDK 1.7是一个值得考虑的选择。

    jdk1.7 jdk1.7 jdk1.7

    在给定的标题“jdk1.7 jdk1.7 jdk1.7”中,反复提及的“1.7”指的是Java的第七个主要版本,也被称为Java 7。这个版本在2011年发布,为开发者带来了许多新特性和改进,旨在提高开发效率和程序性能。 **一、JDK 1.7的...

    JDK1.7免安装版

    - 兼容性考虑:某些旧项目可能依赖于JDK 1.7的功能或API,因此即使后续版本已发布,仍然需要保持对1.7的支持。 4. **JDK版本选择** - 当前最新的Java版本是Java 17,每个新版本都会带来性能提升和新功能。但选择...

    java jdk 1.7官网免安装版本

    6. **下载与更新**:虽然Java JDK 1.7是旧版本,但有时出于兼容性考虑仍需使用。通常,可以从Oracle官网获取,但由于描述中提到,也可以在CSDN等平台找到免安装版本,方便快速下载。 总之,Java JDK 1.7是一个重要...

    jdk1.7.zip压缩安装包

    压缩包中的`jdk1.7.exe`是JDK 1.7的安装程序。通常,安装步骤包括以下几步: 1. 下载并运行`jdk1.7.exe`。 2. 遵循安装向导的提示,选择安装目录。 3. 在环境变量中配置`JAVA_HOME`指向JDK的安装路径。 4. 添加`%...

    jdk1.7正式版64位下载

    标题"jdk1.7正式版64位下载"指的是这个资源是针对64位操作系统的JDK 1.7的官方稳定版本。64位操作系统能够处理更大的内存地址空间,因此对于需要处理大量数据或者运行大型应用的开发者来说,64位JDK是一个必要的选择...

    jdk 1.7 64位

    jdk 1.7 64位jdk 1.7 64位jdk 1.7 64位jdk 1.7 64位jdk 1.7 64位jdk 1.7 6

    springboot+mybatis+jdk1.7

    标题 "springboot+mybatis+jdk1.7" 指的是一个基于Spring Boot、MyBatis框架,并使用Java Development Kit 1.7版本构建的Web应用项目。这个项目已经搭建完成,具备基本的结构,方便开发者快速启动一个新的Java Web...

    jdk1.7_64免安装版本百度云下载

    ### jdk1.7_64免安装版本百度云下载 #### JDK 1.7 (Java Development Kit) 概述 JDK(Java Development Kit),即Java开发工具包,是Sun Microsystems(已被Oracle公司收购)针对Java语言开发的一款功能强大的软件...

    jdk1.7-linux

    "jdk1.7-linux" 指的是Oracle公司发布的针对Linux操作系统的JDK 1.7版本,也称为Java 7。这个版本在2011年发布,引入了许多新特性,对Java生态系统产生了深远影响。 **1. JDK 1.7的主要特性:** - **钻石操作符**:...

    jdk1.7 linux64位下载

    标题"jdk1.7 linux64位下载"明确指出我们要讨论的是JDK 1.7在64位Linux环境下的安装和使用。 JDK 1.7,也被称为Java 7,是Oracle公司发布的一个重要版本,于2011年发布,包含了多项重要的新特性与改进。其中一些...

    java jdk1.7源码包,用于centos7使用jdk1.7编译openjdk1.8的 1.7版本

    Java JDK 1.7源码包是用于在CentOS 7操作系统上进行OpenJDK 1.8编译的重要资源。这个源码包包含了Java Development Kit的1.7版本,通常被称为JDK 7,它是Oracle公司发布的Java编程语言和Java平台标准版的一个实现。...

    jdk1.7 安装包

    - **兼容性**:确保你的系统和应用程序支持JDK 1.7,因为有些较新的库和框架可能需要更高版本的Java。 - **安全更新**:尽管JDK 1.7已经不再接收安全更新,但出于兼容性考虑,某些项目可能仍需使用。在这种情况下,...

    jdk1.7免安装+jdk1.8安装版

    在这个例子中,用户指出使用MATLAB2016b导出jar必须依赖JDK1.7,这可能是因为MATLAB的某些功能或库在JDK1.7环境下运行更为稳定或者与之兼容。而JDK1.8或其他更高版本并未进行测试,因此可能存在未知的兼容性问题。 ...

    jdk1.7 windows 64位

    JDK 1.7,也被称为Java SE 7(Java Standard Edition 7),是Java编程语言的一个重要版本,发布于2011年。在Windows 64位操作系统上安装JDK 1.7,开发者可以获得全面的Java开发和运行环境。 **1. JDK的组成部分** ...

Global site tag (gtag.js) - Google Analytics