2011-03-19 31 views
0

我只是試圖找到「官員」列表的最大值。我正在處理的任務的規格不允許我使官員具有可比性,所以我使用比較器來比較它們。Collections.max()不正確的參數

但是,編譯器正在抱怨我的參數類型。任何人都可以看到有什麼不對? (不要擔心回報......我還沒有這樣做。)

在下面的片段之外,軍官是一個名單<官員已經被初始化了。

Collections.max(officers, new Comparator<Officer>() 
    { 
     public int compare(Officer a, Officer b) 
     { 
      return -1; //will do after 
     } 
    } 
); 

任何建議,將不勝感激!

+0

我添加了「家庭作業」標籤... – syrion 2011-03-19 23:09:58

+0

抱歉,抱歉。謝謝! – BraedenP 2011-03-19 23:11:59

+0

什麼是確切的錯誤信息? – 2011-03-19 23:16:09

回答

1

這個編譯得很好。這裏是一個ideone.com demo

import java.util.*; 

class Officer { 
} 

public class Test { 

    public static void main(String[] args) { 

     List<Officer> officers = new ArrayList<Officer>(); 

     Collections.max(officers, new Comparator<Officer>() 
       { 
        public int compare(Officer a, Officer b) 
        { 
         return -1; //will do after 
        } 
       } 
      ); 
    } 
} 

所以,沒有錯你所發佈的代碼。必須是別的錯誤。

+0

檢查原帖子的評論... chit。一場瘋狂的追逐。 – 2011-03-19 23:34:30

+0

啊,好像我的最後一句話是正確的);) – aioobe 2011-03-19 23:36:33