Re: [問題] 有沒有可能做到類似函式指標的功能?

看板java作者時間16年前 (2010/01/08 17:07), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串4/8 (看更多)
※ 引述《mgtsai ()》之銘言: : Class Main : { : public static void main(int argc, String[] argv) { : PrintMethod fp; // 類似宣告 void (*fp)(void); : : if (argv[0].equals("printA")) : fp = ABC.printA; // 類似 fp = ABC::printA; : else if (argv[0].equals("printB")) : fp = ABC.printB; // 類似 fp = ABC::printB; : else if (argv[0].equals("printC")) : fp = ABC.printC; // 類似 fp = ABC::printC; : : fp.invoke(); // 類似呼叫 (*fp)(); : } : } : : -- : 推 petertc:這有解決原po的問題嗎?i.e., 不動到dispatcher新增功能 01/08 16:54 ^^^^^^^^^^^^^^^^^^^^^^^^ 重點就在於 PrintMethod fp; 若要用 dispatcher 上,那就把 fp 變數帶著跑就好 因為原 po 的 main() 中,參數輸入是 "字串" 所以無論如何,都會有 字串 -> 指標 的查詢程式碼 (對照使用 C 或 C++,即使支援 function pointer,但也免不了有這一段程式碼 而且 C 或 C++ 更不方便的地方在於, 並沒有如 Java 有 reflection 可以自動做到 字串 -> 指標 的查詢) 但如果不限制輸入參數是字串的話,那麼: class Dispatcher { public void dispatch(PrintMethod fp, [some other arguments]) { .... // do something fp.invoke(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.129.52 ※ 編輯: mgtsai 來自: 60.250.129.52 (01/08 17:08)

01/08 17:17, , 1F
==.=== 有沒有高手可以解釋一下這篇... 我不懂 Orz
01/08 17:17, 1F

01/08 18:02, , 2F
我新手=.=
01/08 18:02, 2F
文章代碼(AID): #1BHlNaAf (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 4 之 8 篇):
文章代碼(AID): #1BHlNaAf (java)