可能重复:
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