首先,我确实调查了这个.我在这里找到了同样的问题,但是关于C++:未使用的函数返回值会发生什么?
我的兴趣在于Java(尽管这个帖子确实很有趣).
普遍的共识是,没有任何事情真的发生,如果有什么事情被后来覆盖.java的那个线程有什么不同吗?
(链接将被欣赏,因为我可以想象可能会发生什么,但想要一些证据和细节.而且我正在寻找更深入然后"它没有设置为变量")
我已经看过很多与这个问题有关的帖子,但是我执行的所有桌面检查以及我实施的建议都没有帮助.我无法弄清楚我是如何违反比较国的合同的.当然,我不经常使用比较器.
我有一个大型的ArrayList对象,它们在每次更新时排序,因为它们的位置经常变化.我必须从左下到右上顺序渲染这些对象,以保持像2D程序一样的"深度"外观.
这是我的比较器:
@Override
public int compare(RenderObject o1, RenderObject o2)
{
//if(o1 == null || o2 == null)
// return 0;
if(o1 == null)
return -1;
else if(o2 == null)
return 1;
//vertices in order top-left, top-right, bottom-right, bottom-left
PointF[] bounds1 = o1.getVertices(),
bounds2 = o2.getVertices();
//if(bounds1 == null || bounds2 == null || bounds1.equals(bounds2))
// return 0;
if(bounds1 == null)
return -1;
else if(bounds2 == null)
return 1;
if(bounds1[0].x >= bounds2[1].x || bounds1[3].y <= bounds2[0].y)
return 1;
else if(bounds1[1].x …Run Code Online (Sandbox Code Playgroud)