public int compareTo(Object x) {
Task other = (Task)x;
if (other.priority == this.priority) {
System.out.println("Each task has the same priority level.");
return 0;
} else if (other.priority > this.priority) {
System.out.println(other.priority + "\n" + this.priority);
return -1;
} else {
System.out.println(this.priority + "\n" + other.priority);
return 1;
}
}
这是我为类编程作业准备的代码。我不确定我为什么使用 Task other = (Task)x;
或者它在这里做什么。其余的我明白了。如果有人能快速解释这里的实际情况,我将不胜感激。谢谢!
最佳答案
您正在将 Object x
转换为 Task other
- Object
和 Task
是不同的类型,因此您需要转换,以便您可以将 x
视为预期类型(并获取它的字段)。
通常在 compareTo()
中,您首先会得到类似 if (x instanceof Task)
的东西,然后再盲目地转换它 - 如果您不这样做并且类型不同,那么事情会崩溃)
关于java - 为什么要在 compareTo(Object) 中进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167199/