我是一個Java新手,所以我的問題可能看起來像一個簡單的問題。但我需要你們的一些指導。在Java中作爲選擇列出函數
這裏是我的問題:我有一堆類的方法,我想給這些方法給用戶一個combox來選擇,根據他們的選擇一些代碼會運行。現在我可以通過編寫開關選擇方法來完成這項工作根據選擇,我使用開關來運行特定的方法。
但是我的函數列表很長,接近200,所以我對你的問題是:有沒有更聰明的方法來做到這一點。 只要指出我正確的方向,我會盡力完成剩下的工作。
我是一個Java新手,所以我的問題可能看起來像一個簡單的問題。但我需要你們的一些指導。在Java中作爲選擇列出函數
這裏是我的問題:我有一堆類的方法,我想給這些方法給用戶一個combox來選擇,根據他們的選擇一些代碼會運行。現在我可以通過編寫開關選擇方法來完成這項工作根據選擇,我使用開關來運行特定的方法。
但是我的函數列表很長,接近200,所以我對你的問題是:有沒有更聰明的方法來做到這一點。 只要指出我正確的方向,我會盡力完成剩下的工作。
您可以使用reflection,具體爲:Class.getMethods()
或Class.getDeclaredMethods()
。
確保你瞭解他們之間的差異(閱讀鏈接的javadocs爲此),如果你不 - 不要害怕問。
我認爲,考慮到Java反射將是最好的開始,假設我已經理解你想要做的正確。
您可以使用反射(你可以找到很多關於谷歌信息),但它不是一個簡單的向用戶展示你的方法的好習慣。在更復雜的應用程序,你應該嘗試不同的展示和哪些用戶需要
每個選擇都可以由內置一組函數指針的枚舉表示真正的執行:
public enum FunctionPointer {
F1 {
public SomeObject doFunction(args) {
YourClass.doMethod(args);
}
},
//More enum values here...
}
的語法會需要一點工作,但在客戶端,你可以撥打電話
FunctionPointer.F1.doFunction("abc");
它確實不是你的switch語句不相似,但我不喜歡反省一些沒有它的事情。 – David