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);
}
}
如果您能更具体地说明您的问题,可能会有更好的答案。
我有以下代码
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);
}
}
如果您能更具体地说明您的问题,可能会有更好的答案。