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

看板java作者 (殺人貓™)時間12年前 (2013/08/20 13:32), 編輯推噓3(308)
留言11則, 7人參與, 最新討論串2/4 (看更多)
※ 引述《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
等下!敲頭函式明明就是private!你怎麼可以用阿!!!
08/20 13:42, 2F

08/20 14:37, , 3F
我用Method硬用name抓出來invoke的(被打)
08/20 14:37, 3F

08/20 14:47, , 4F
你不考慮直接洗腦嗎? [逃]
08/20 14:47, 4F

08/20 15:35, , 5F
我之前也是用 reflection ...
08/20 15:35, 5F

08/20 16:00, , 6F
對我這個C++出身的來說 reflect真的是邪道啊 =_=+
08/20 16:00, 6F

08/20 18:47, , 7F
老師說:寫JAVA最好忘記C or C++,免得會有刻板印象,走火入魔
08/20 18:47, 7F

08/20 19:26, , 8F
二邊都弄清楚就不會走火入魔了
08/20 19:26, 8F

08/20 19:27, , 9F
兩邊都弄清楚的過程當中會先走火入魔 Orz
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
文章代碼(AID): #1I4lzpfz (java)
討論串 (同標題文章)
文章代碼(AID): #1I4lzpfz (java)