Java 动态函数调用
2022-09-01 15:11:48
我有一个 String 数组,其中包含类中方法的名称yyyyyy
在类中,我正在制作一个实例(例如)。现在我可以调用 ,除了我想从循环中的 String 数组读取。这可能吗?xxxxxx
yyyyyy
obj
obj.function_name()
function_name
我有一个 String 数组,其中包含类中方法的名称yyyyyy
在类中,我正在制作一个实例(例如)。现在我可以调用 ,除了我想从循环中的 String 数组读取。这可能吗?xxxxxx
yyyyyy
obj
obj.function_name()
function_name
可以使用反射,尽管如果您需要这种行为,则可能应该质疑您的设计。 将 a 作为方法名称并返回一个对象,然后可以调用该对象来调用该方法Class.getMethod
String
Method
.invoke
这些 Javadoc 页面应该会有所帮助:
示例代码(假设这些方法采用一个参数,只是为了显示参数传递):yyyyyy
int
yyyyyy obj = new yyyyyy();
String[] methodNames = {"foo", "bar", "baz"};
for(String methodName : methodNames) {
Method method = Class.forName("yyyyyy").getMethod(methodName, new Class[] {int.class});
method.invoke(obj, 4); // 4 is the argument to pass to the method
}