我正在使用BST数据结构,我有一个名为 TimeInterval
的类private TimeInterval StartTime,EndTime;
public TimeInterval(Time time,Time time2){
StartTime = (TimeInterval) time; //cannot convert from Time to TimeInterval
EndTime = (TimeInterval) time2; //cannot convert from Time to TimeInterval
}
@Override
public int compareTo(TimeInterval that) {
if (StartTime.compareTo(that.EndTime) > 0) {
return 1;
}
if (EndTime.compareTo(that.StartTime) < 0) {
return -1;
}
return 0;
}
我该怎么做才能解决这个问题并让方法compareTo正常工作? 注意:我试图这样做但它没有工作:
private Time StartTime,EndTime;
public TimeInterval(Time time,Time time2){
StartTime = time;
EndTime = time2;
}
@Override
public int compareTo(TimeInterval that) {
if (((TimeInterval)StartTime).compareTo((TimeInterval)that.EndTime) > 0) {
return 1;
}
if (((TimeInterval)EndTime).compareTo((TimeInterval)that.StartTime) < 0) {
return -1;
}
return 0;
}
答案 0 :(得分:0)
您不应该进行任何投射,因为StartTime
和EndTime
都具有Time
类型,并且您正在直接比较两者。
private Time StartTime,EndTime;
public TimeInterval(Time time,Time time2){
StartTime = time;
EndTime = time2;
}
@Override
public int compareTo(TimeInterval that) {
if (StartTime.compareTo(that.EndTime) > 0) {
return 1;
}
if (EndTime.compareTo(that.StartTime) < 0) {
return -1;
}
return 0;
}
此外,建议camelCase
用于命名变量。