看板 java 關於我們 聯絡資訊
※ 引述《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
PsMonkey:攻擊行為是禁止的 [毆] [喂喂] 08/20 13:33
swpoker:等下!敲頭函式明明就是private!你怎麼可以用阿!!! 08/20 13:42
Killercat:我用Method硬用name抓出來invoke的(被打) 08/20 14:37
PsMonkey:你不考慮直接洗腦嗎? [逃] 08/20 14:47
superlubu:我之前也是用 reflection ... 08/20 15:35
Killercat:對我這個C++出身的來說 reflect真的是邪道啊 =_=+ 08/20 16:00
ssc24:老師說:寫JAVA最好忘記C or C++,免得會有刻板印象,走火入魔 08/20 18:47
qrtt1:二邊都弄清楚就不會走火入魔了 08/20 19:26
PsMonkey:兩邊都弄清楚的過程當中會先走火入魔 Orz 08/20 19:27
Killercat:對於一個工作要用五種語言的人來說 歡喜做甘願受阿(淚 08/20 19:59
realmeat:走火入魔???可能我先玩爛一邊再走另一邊,完全沒感覺 08/20 21:48