Re: [問題] 將 static method 當做函數的參數傳入?
※ 引述《Neisseria (Neisseria)》之銘言:
: 程式碼易讀版 http://pastebin.com/PsyzqbBQ
: 程式碼是 quick sort 的練習,參考網路上的略為修改
: 要問的問題是 我寫了一個函數來做為 Comparator 如下
: public static<T extends Comparable<? super T>>
: int ascending(T t1, T t2) {
: return t1.compareTo(t2);
: }
: 我想要將 Comparator 傳入 quick sort 的函式
: quickSort(list, 0, list.size() - 1, QuickSortTest::ascending)
: 其中 QuickSortTest 是主要的 public class
: 不過無法編譯成功,錯誤在 QuickSortTest::ascending
: 似乎無法將 static method 直接當參數傳入
: Java 也不支援 QuickSortTest::ascending 這類的語法
: 請各位先進不吝給個方向
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++寫太多了(敲頭)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.251.135
推
08/20 13:33, , 1F
08/20 13:33, 1F
→
08/20 13:42, , 2F
08/20 13:42, 2F
→
08/20 14:37, , 3F
08/20 14:37, 3F
→
08/20 14:47, , 4F
08/20 14:47, 4F
推
08/20 15:35, , 5F
08/20 15:35, 5F
→
08/20 16:00, , 6F
08/20 16:00, 6F
→
08/20 18:47, , 7F
08/20 18:47, 7F
→
08/20 19:26, , 8F
08/20 19:26, 8F
推
08/20 19:27, , 9F
08/20 19:27, 9F
→
08/20 19:59, , 10F
08/20 19:59, 10F
→
08/20 21:48, , 11F
08/20 21:48, 11F
討論串 (同標題文章)