比较方法违反了其一般合同 - Java

时间:2016-06-23 02:31:33

标签: java comparable

我知道这个问题有很多答案,但我仍然遇到这个问题。我理解A>的想法B,B> C,所以A> C和我相信我所做的事情能够完美地运作。

public int compareTo(Snake snake) {
    double other=snake.testFitness();
    double tFit = this.testFitness();
    if(tFit < other)
        return 1;
    else if(tFit > other)
        return -1;
    else
        return 0;
}

我不明白这么简单的事情是如何违反一般合同的。

编辑:对于那些要求testFitness()函数的人。

public double testFitness() {
    fit += ((this.length - 3)*2);
    fit -= this.blocksTraveled*3;
    return fit;
}

0 个答案:

没有答案