2011-12-15 84 views
1

我有权命令的集合,我用一个比较比较未发现

import java.util.*; 

public class OpereComparatorAuthor implements Comparator<Opera>{ 

    public int compare(Opera left,Opera right){  
     return left.getArtist().compareTo(right.getArtist()); 
    } 
} 

,但是当我从另一个类调用它:

Collections.sort(ordbyauthor,OpereComparatorAuthor); 

我收到此错误:

cannot find symbol 
symbol : variable OpereComparatorAuthor 
location: class Museo 
    Collections.sort(ordbyauthor,OpereComparatorAuthor); 

为什么?

+0

您在评论中提及Salla。 Opera和Salla有什么关系?此外,发布更多代码围绕如何调用排序,包括创建对象后我收到错误的列表 – Bohemian 2011-12-15 20:38:07

回答

3

你要通过比较的对象:

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 
    } 
}); 
+0

的定义:无法找到符号 符号:方法排序(java.util.LinkedList ,OpereComparatorAuthor) location :class java.util.Collections \t \t Collections.sort(ordbyauthor,new OpereComparatorAuthor()); – Mazzy 2011-12-15 20:03:03