我必须订购一个集合并且我使用了一个比较器
import java.util.*;
public class OpereComparatorAuthor implements Comparator<Opera>{
public int compare(Opera left,Opera right){
return left.getArtist().compareTo(right.getArtist());
}
}
但是当我从另一个类(class)调用它时:
Collections.sort(ordbyauthor,OpereComparatorAuthor);
我收到此错误:
cannot find symbol
symbol : variable OpereComparatorAuthor
location: class Museo
Collections.sort(ordbyauthor,OpereComparatorAuthor);
为什么?
最佳答案
你必须传递一个比较器的对象:
Collections.sort(ordbyauthor, new OpereComparatorAuthor());
更新:
这只是一个建议。对于这种情况,不要定义类,而是使用匿名类(我认为这是一个很好的选择)。
例如
//I am using Sala here instead of Opera as per your comment
Collections.sort(ordbyauthor, new Comparator<Sala>(){
@Override
public int compare(Sala left, Sala right) {
//do your comparision here according to your requirement
//then return the result
}
});
关于java - 找不到比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525808/