小编Vin*_*rma的帖子

比较者不工作

我们编写了以下代码,这些代码不适用于Comparator比较方法.

public int compare(Object o1, Object o2)
{
    if (o2 == null) return 1;
    else if (o1 == null) return -1;

    MailObject a = (MailObject)o1;
    MailObject b = (MailObject)o2;
    return a.getType() < b.getType()? 1 : -1;
}
Run Code Online (Sandbox Code Playgroud)

其中getType()方法返回一个整数值.以下代码工作正常

public int compare(Object o1, Object o2)
{
    if (o2 == null) return 1;
    else if (o1 == null) return -1;

    MailObject a = (MailObject)o1;
    MailObject b = (MailObject)o2;
    return a.getType() - b.getType();
}
Run Code Online (Sandbox Code Playgroud)

如果我们在return语句中删除三元运算符,那么它工作正常.如果我们添加相同的检查,那么它也工作正常.为什么?

第一个代码块给出以下异常:

07:45:22 ERROR c.c.servlet.MyServlet …
Run Code Online (Sandbox Code Playgroud)

java comparator

1
推荐指数
1
解决办法
602
查看次数

标签 统计

comparator ×1

java ×1