對不起,如果我的問題看起來很愚蠢。我在.compareTo()上遇到錯誤無法在基本類型double上調用compareTo(double)!我怎樣才能解決這個問題 ?謝謝!原始類型雙錯誤
車輛類:
public class Vehicle implements IOutput {
private double cost;}
public double getCost(){
return cost;
}
Array類:
public static void sortByVehicleMakeModel(Vehicle[] vehicles) {
boolean swapped = true;
for(int y = 0; y < vehicles.length && swapped; y++) {
swapped=false;
for(int x = 0; x < vehicles.length - (y+1); x++) {
if(vehicles[x].getCost().compareTo(vehicles[x + 1].getCost()) > 0){
swap(vehicles, x, x + 1);
swapped=true;
}
}
}
}
我的其他代碼工作正常:
public static void sortByOwnerName(Vehicle[] vehicles) {
boolean swapped = true;
for(int y = 0; y < vehicles.length && swapped; y++) {
swapped=false;
for(int x = 0; x < vehicles.length - (y + 1); x++) {
if(vehicles[x].getOwner().getName().compareTo(vehicles[x + 1].getOwner().getName())> 0) {
swap(vehicles, x, x + 1);
swapped=true;
}
}
}
}
沒有'getCost()'返回'double'或'Double'?從錯誤信息中,我認爲'Double'和問題是缺少'> 0'。但讓我們仔細檢查! –
@AndrewLazarus:錯誤消息說 - 「...不能在原始類型double **上調用compareTo(double)**」。 –
愚蠢的問題,和題外話,但你爲什麼做泡沫排序? –