如何使用变量名称调用java方法?

2022-09-01 11:37:41

假设我有方法1(void),Method2(void)...

有没有办法让我选择一个变量?

 String MyVar=2;
 MethodMyVar();

答案 1

使用反射:

Method method = WhateverYourClassIs.class.getDeclaredMethod("Method" + MyVar);
method.invoke();

答案 2

只有通过反思。请参阅包。java.lang.reflect

你可以尝试如下方法:

Method m = obj.getClass().getMethod("methodName" + MyVar);
m.invoke(obj);

如果方法具有参数并且缺少各种异常处理,则代码可能会有所不同。

但问问你自己,这真的有必要吗?是否可以更改您的设计以避免这种情况。反射代码难以理解,并且比仅调用 .obj.someMethod()

祝你好运。快乐编码。