Java "identifier expected" 错误

Java "identifier expected" error

我有以下代码

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 行末尾的右括号,表示 "expected identifier."

我不知道是什么意思。这是一个静态方法,所以它没有类型,它也没有引用比较器,因为它有一个标识符。我该怎么办?

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

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

我不确定你想做什么。但是您必须为 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);
    }
}

如果您能更具体地说明您的问题,可能会有更好的答案。