考虑一个简单的案例,我要求用户在10种不同的水果中选择一种水果。说水果,苹果,橘子,芒果......等等。如果用户选择苹果,我叫apple(),如果他选择芒果,我叫芒果()等等......
要选择要调用的函数,我不想使用switch或if-else语句。如何选择在运行时调用哪个函数?
注意:我使用的编程语言是Java
答案 0 :(得分:0)
使用Reflection
。
例如:
写一个类中的所有函数;说com.sample.FruitStall
然后使用下面的代码。
String className = "com.sample.FruitStall";
String methodName = "apple"; //here you will choose desired method
Object result;
Class<?> _class;
try {
_class = Class.forName(className);
} catch (Exception e) {
e.printStackTrace();
}
Object[] args = new Object[1]; // To Supply arguments to function
result = _class.invokeMethod(methodName, args);
答案 1 :(得分:0)
使用java Refection api在运行时调用函数。
Class noparams[] = {};
Class cls = Class.forName("com.test.Fruit");
Object obj = cls.newInstance();
//call the printIt method
Method method = cls.getDeclaredMethod("apples", noparams);
method.invoke(obj, null);
答案 2 :(得分:0)
使用设计模式“Command”。 http://www.codeproject.com/Articles/186192/Command-Design-Pattern
隐藏需要执行的操作的详细信息。