对于Java代码,我需要为数字中的某些数字调用函数。实际上,如果我的电话号码是464,则必须调用名为assert4和assert6的函数。希望您能理解。但是,如果我是对的,我们不能将字符串和变量连接起来以具有函数的名称并执行它。例如 :
for (int i = 0; i < number.length(); i++) {
assert + i + (); // For example executing the function assert4
}
所以我看不到我该怎么做。感谢帮助 !
最佳答案
您可以使用YourClass.class.getMethod(...).invoke(...)
之类的东西来进行反射。 (例如,参见this question。)
但是,这有点代码味道,我鼓励您做类似的事情
Map<Integer, Runnable> methods = new HashMap<>();
methods.put(464, YourClass::assert464);
...
for (int i = 0; i < number.length(); i++) {
methods.get(i).run();
}
如果您使用的是Java 7或更早版本,则等效为
methods.put(464, new Runnable() { public void run() { assert464(); } });