如何使用变量名称调用java方法?
假设我有方法1(void),Method2(void)...
有没有办法让我选择一个变量?
String MyVar=2;
MethodMyVar();
假设我有方法1(void),Method2(void)...
有没有办法让我选择一个变量?
String MyVar=2;
MethodMyVar();
使用反射:
Method method = WhateverYourClassIs.class.getDeclaredMethod("Method" + MyVar);
method.invoke();
只有通过反思。请参阅包。java.lang.reflect
你可以尝试如下方法:
Method m = obj.getClass().getMethod("methodName" + MyVar);
m.invoke(obj);
如果方法具有参数并且缺少各种异常处理,则代码可能会有所不同。
但问问你自己,这真的有必要吗?是否可以更改您的设计以避免这种情况。反射代码难以理解,并且比仅调用 .obj.someMethod()
祝你好运。快乐编码。