可能重複:
What's the nearest substitute for a function pointer in Java?是否有與C++函數指針相當的Java?
我寫一個工廠類創建了一堆不同的小部件。爲了參數,假設這個工廠可以創建1000個小部件。
myWidget createWidget (widgetId)
{
case 0: createwidget0();
.
.
case 1000: createwidget1000();
}
我不想寫1000個case語句。我想將所有創建例程 放在一個數組中。使用widgetId作爲索引來直接執行create例程,所以 它不需要通過比較1000條件。所以整個createWidget 程序可以簡化,這樣
myWidget createWidget (widgetId)
{
myAwsomeFuncArr createFunc;
myWidget widget = createFunc[widgetId]();
}
有沒有去做到這一點在Java中?
可能的重複:http://stackoverflow.com/questions/122407/whats-the-nearest-substitute-for-a-function-pointer-in-java – 2010-09-02 20:58:40
你甚至不需要數組,嘗試getClass( ).getMethod( 「createwidget」 +爲widgetid).invoke();將取代你的案例/數組。 – 2010-09-04 07:57:11