Java"标识符预期"错误

时间:2016-03-21 05:13:08

标签: java identifier

我有以下代码

import java.util.*;
public class Sorts {
    public static void sort(ArrayList objects, Comparator<Car>) {
        Comparator compareThing = new CarNameComparator();
        int min;
        Car temp;
        for(int i = 0; i < objects.size() - 1; i++){
            min = i;
            for(int j = min+1; j < objects.size(); j++){
                if(compareThing.compare(objects.get(i), objects.get(j))> 0){
                    min = j;
                }
            }
            temp = (Car)objects.get(i);
            objects.set(i, objects.get(min));
            objects.set(min, temp);
        }
    }
}

我的IDE突出显示第3行末尾的右括号,说&#34;期望的标识符。&#34;

我不知道这意味着什么。这是一种静态方法,因此它不具有类型,并且它没有引用比较器,因为它具有标识符。我该怎么办?

2 个答案:

答案 0 :(得分:4)

public static void sort(ArrayList objects, Comparator<Car> identifier)

您错过了函数参数中的参数名称。

答案 1 :(得分:1)

我不确定你要做什么。但是您必须为Comparator类型的传递参数指定标识符。我想你想做的是:

public static void sort(ArrayList objects, CarNameComparator compareThing) {
    int min;
    Object temp;

    for(int i = 0; i < objects.size() - 1; i++){
        min = i;

        for(int j = min+1; j < objects.size(); j++){
            if(compareThing.compare(objects.get(i), objects.get(j))> 0){
                min = j;
            }
        }

        temp = (Object)objects.get(i);
        objects.set(i, objects.get(min));
        objects.set(min, temp);
    }
}

或者您可能只想删除参数并执行以下操作:

public static void sort(ArrayList objects) {
    Comparator compareThing = new CarNameComparator();

    int min;
    Object temp;

    for(int i = 0; i < objects.size() - 1; i++){
        min = i;

        for(int j = min+1; j < objects.size(); j++){
            if(compareThing.compare(objects.get(i), objects.get(j))> 0){
                min = j;
            }
        }

        temp = (Object)objects.get(i);
        objects.set(i, objects.get(min));
        objects.set(min, temp);
    }
}

如果您可以更具体地指定问题,则可能会有更好的答案。