[問題] 有沒有可能做到類似函式指標的功能?
搜尋過之前的文章了,都沒有關於函式指標的議題
所以只好上來發問...
想像以下程式碼:
Class ABC {
public printA() {
System.out.println("這是 printA().");
}
public printB() {
System.out.println("這是 printB().");
}
public printC() {
System.out.println("這是 printC().");
}
}
Class Main {
public static void main() {
ABC abc = new ABC();
if(argv[0]=="printA") abc.printA(); // 若參數為printA,則呼叫printA()
else if(argv[0]=="printB") abc.printB(); // 若參數為printB,則呼叫printB()
else if(argv[0]=="printC") abc.printC(); // 若參數為printC,則呼叫printC()
}
}
以上是一段簡單易懂的程式碼,想要呼叫什麼 Method,就輸入那個方法當作參數就好
但是缺點是相當難以維護,
只要我新增了一個 printD() 方法,也就必須要在 main() 裡面加上:
else if(argv[0]=="printD") abc.printD();
這一段 code 才行,相當不方便
理想的程式,應該是新增了任何 printX() 之後,在 main() 裡面並不需要另外做修改
這個目標,在 C 語言裡可以經由函式指標來達到,但是 JAVA 沒有辦法這麼做
不知道是否有其他的解法?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.117.64.225
→
01/07 22:43, , 1F
01/07 22:43, 1F
推
01/08 00:27, , 2F
01/08 00:27, 2F
→
01/08 00:29, , 3F
01/08 00:29, 3F
推
01/08 01:36, , 4F
01/08 01:36, 4F
→
01/08 01:50, , 5F
01/08 01:50, 5F
→
01/08 08:53, , 6F
01/08 08:53, 6F
→
01/08 10:37, , 7F
01/08 10:37, 7F
推
01/08 10:39, , 8F
01/08 10:39, 8F
→
01/08 20:55, , 9F
01/08 20:55, 9F
推
01/10 12:05, , 10F
01/10 12:05, 10F
→
01/10 12:08, , 11F
01/10 12:08, 11F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 8 篇):