Re: [問題] 將 static method 當做函數的參數傳入?已刪文

看板java作者 (Neisseria)時間12年前 (2013/08/20 21:46), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/4 (看更多)
※ 引述《Killercat (殺人貓™)》之銘言: : quickSort(list, 0, list.size() - 1, new Comperator<T>() { : int ascending(T t1, T t2) { : return QuickSortTest<T>.ascending(t1, t2); : } : }); : java沒辦法傳一個method(也不能說沒辦法 不過要用reflect把它invoke) : 基本上只能傳object,所以用一個匿名的class把它包起來就好了. : 另外.... "::"? 你C++寫太多了(敲頭) 其實我 C++ 不熟哩 我也是 copy 程式碼來的 呵呵 不過不知為何 大大的方式我試過還是不能使用 我後來試了另一種方式 就是自己實做 Comparator 然後丟到 sort 函式裡面 這樣就可以跑了 public static <T extends Comparable<? super T>> void ascending_sort(List<T> list) { Comparator<T> comp = new Comparator<T>(){ public int compare(T t1, T t2) { if (t1.compareTo(t2) > 0) { return 1; } else if (t1.compareTo(t2) < 0) { return -1; } else { return 0; } } }; sort(list, comp); } 不過如果是在 main 函式的話 就不能用這個方法 所以只好用一個 ascending_sort 函式包裝起來 如果希望 list 呈降冪排列 只要改 Comparator 的正負號即可 以上就是一點小心得 謝謝各位大大的指教 -- 小瑋的倉庫 http://cwchen123.blogspot.tw 生活、攝影、電腦,大雜燴 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.85.200

08/24 12:50, , 1F
implements comparable 裡面的CompareTo
08/24 12:50, 1F
文章代碼(AID): #1I4tCVVU (java)
討論串 (同標題文章)
文章代碼(AID): #1I4tCVVU (java)