import java.util.*; public class AnonLam{ public static void main(String[] args){ String[] direct = {"east","west","south","north"}; Sorter s = new Sorter(); for(String s2:direct){ System.out.println(s2 + " "); } Arrays.sort(direct,s); System.out.println(); for(String s2:direct){ System.out.println(s2 + " "); } } class Sorter implements Comparator<String>{ public int compare(String a,String b){ return b.compareTo(a); } } }这段代码错在哪,并用匿名内部类改写
时间: 2024-02-14 07:17:20 浏览: 80
这段代码的问题在于,Sorter类没有被定义为静态嵌套类或单独的类文件,因此不能在静态main方法中直接引用。
要使用匿名内部类改写这段代码,可以将Sorter类改为匿名内部类的实现形式,如下所示:
```
import java.util.*;
public class AnonLam {
public static void main(String[] args) {
String[] direct = {"east", "west", "south", "north"};
// 使用匿名内部类实现Comparator接口
Comparator<String> sorter = new Comparator<String>() {
public int compare(String a, String b) {
return b.compareTo(a);
}
};
for (String s2 : direct) {
System.out.println(s2 + " ");
}
Arrays.sort(direct, sorter);
System.out.println();
for (String s2 : direct) {
System.out.println(s2 + " ");
}
}
}
```
这样,我们就使用了匿名内部类来实现了Comparator接口,从而达到了相同的排序效果。
阅读全文
相关推荐


















