我得到这个错误:当我试图在Java中运行这个比较对我的实体系统Java的比较抛出非法参数异常

Exception in thread "Thread-3" java.lang.IllegalArgumentException: Comparison method violates its general contract!

private Comparator spriteSorter = new Comparator() {

public int compare(Entity e0, Entity e1) {

if (e1.position.getX() <= e0.position.getX())

return +1;

if (e1.position.getY() >= e0.position.getY())

return -1;

return 0;

}

};

下面是执行:

private void sortAndRender(Bitmap b, Vec2 offset, ArrayList l) {

Collections.sort(l, spriteSorter);

for (int i = 0; i < l.size(); i++) {

l.get(i).render(b, offset);

}

}

这个问题只在我在屏幕上显示大量实体时才真正开始发生。这里发生了什么?

2013-03-09

DazKins

+1

大于/小于符号不正确,您的比较函数永远不会返回零 –

2013-03-09 17:54:28

+0

您没有实现equals(Object)方法。 –

2013-03-09 17:55:06

+0

@shuangwhywhy这与'equals'无关。 –

2013-03-09 17:56:19

java 非法参数异常_Java的比较抛出非法参数异常相关推荐

  1. java 最后的异常_java – 最后不要抛出堆栈溢出异常

    Error不是例外.所以捕捉任何异常都不会捕获StackOverflowError. 所以让我们先来看一下"明显的错误" – (这段代码不太适合这个答案后面的说明): catch( ...

  2. java 向上抛异常_java throws 向上抛出的概念问题

    展开全部 ------------------附注------------------------ 向上抛出的意思 针对  子类 父类, 这里面涉及到几个方面,最重323131333532363134 ...

  3. java抛出数组格式异常,Java中异常

    一.异常的概述 在Java中,把异常信息封装成了一个类.当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置.原因等). 二.异常的继承体系和错误的区别 1.异常的继承体系 Thr ...

  4. java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...

    [情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...

  5. 【java基础】java异常,捕获与抛出

    java异常,捕获与抛出 1.概念: 在java里,所有的异常都有一个共同的祖先Throwable(可抛出). Throwable:有两个重要的子类:Exception(异常)和Error(错误). ...

  6. 怎么一次抛出多个异常

    定义一个自定义异常,如下: import java.util.ArrayList; import java.util.List;/*** 自定义异常*/ public class MyExceptio ...

  7. .NET 指南:捕获并且抛出标准的异常类型

    下列指导方针为 .NET Framework 所提供的一些最常用的异常而描述了最佳的实践.关于 .NET Framework 所提供的完整的异常类列表,请参考:[.NET Framework 类库参考 ...

  8. [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开...

    一.程序错误 编译错误,即语法错误.程序就无法被生成运行代码. 运行时错误 不可预料的逻辑错误 可以预料的运行异常 例如: 动态分配空间时可能不会成功 打开文件可能会失败 除法运算时分母可能为0 整数 ...

  9. C++ 抛出和接收异常的顺序

    代码编译运行环境:VS2017+Debug+Win32 异常(exception)是 C++ 引入的错误处理机制.它采用了统一的方式对程序的运行时错误进行处理,具有标准化.安全和高效的特点.C++ 为 ...

最新文章

  1. vmd变分模态分解程序matlab论坛_博士兼职辅导员论坛分享会第三期
  2. 10个你值得收藏的牛逼开源后台控制面板
  3. form中的onblur事件简单的介绍
  4. 华东信标组预赛前三名
  5. Java实战应用50篇(二)-SSM框架中的设计模式:动态代理
  6. 利用python自带的包可以建立简单的web服务器
  7. docker启动sqlserver_ASP.NET Core容器化技术Docker零基础从入门到实战演练
  8. robodk导出html错误,在优傲机器人示教器上调试RoboDK机器人程序
  9. python seach_python 正则re.search
  10. C/C++语言函数学习(4)字符串处理函数
  11. 先进技术android,React Native实战(JavaScript开发iOS和Android应用)/计算机科学先进技术译丛...
  12. 签约沈腾,易车开启三年品牌计划,穿越车市寒冬
  13. 身为前端工程师,对你来说,你认为最重要的是什么?
  14. ASP.NET Core MVC请求超时设置解决方案
  15. Atitit. 构造ast 语法树的总结attilax oao
  16. VeryCD 电驴(easyMule) 1.1.9 稳定版
  17. 1005打印任务取消不了 hp_(完整版)hp打印机无法取消打印的文档解决方法
  18. 浅谈Python爬虫(八)【有道词典翻译API】
  19. 三相全控tc787触发电路_何为可控硅整流器三相桥和双反星整流电路?
  20. 每日 CRUD?两年滴滴和入职头条的后端开发经验分享!共勉!

热门文章

  1. H5非常炫酷的加载特效loading
  2. elementUI中修改el-input样式
  3. ios软键盘弹出布局上移问题
  4. VirtualBox6.0中CentOS7网络配置
  5. Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition
  6. 报告(2022-7-26)
  7. 【css】炫酷半边边框效果div
  8. Android6运行所需内存大小,Android手机的运行内存要多少才合适
  9. java中关于++x前加加和x++后加加的疑惑!
  10. Bug:org.elasticsearch.action.ActionRequestValidationException: Validation Failed:1: index is missin