2012-06-13 53 views
6

我是一個Java新手,所以我的問題可能看起來像一個簡單的問題。但我需要你們的一些指導。在Java中作爲選擇列出函數

這裏是我的問題:我有一堆類的方法,我想給這些方法給用戶一個combox來選擇,根據他們的選擇一些代碼會運行。現在我可以通過編寫開關選擇方法來完成這項工作根據選擇,我使用開關來運行特定的方法。

但是我的函數列表很長,接近200,所以我對你的問題是:有沒有更聰明的方法來做到這一點。 只要指出我正確的方向,我會盡力完成剩下的工作。

回答

2

我認爲,考慮到Java反射將是最好的開始,假設我已經理解你想要做的正確。

1

您可以使用反射(你可以找到很多關於谷歌信息),但它不是一個簡單的向用戶展示你的方法的好習慣。在更復雜的應用程序,你應該嘗試不同的展示和哪些用戶需要

0

每個選擇都可以由內置一組函數指針的枚舉表示真正的執行:

public enum FunctionPointer { 
F1 { 
    public SomeObject doFunction(args) { 
     YourClass.doMethod(args); 
    } 
}, 
//More enum values here... 
} 

的語法會需要一點工作,但在客戶端,你可以撥打電話

FunctionPointer.F1.doFunction("abc"); 
+0

它確實不是你的switch語句不相似,但我不喜歡反省一些沒有它的事情。 – David