gpt4 book ai didi

java - 通过字符串调用方法

转载 作者:行者123 更新时间:2023-12-01 17:10:18 36 4
gpt4 key购买 nike

我想通过使用字符串来调用方法。我知道这是可能的;据我了解,反射(reflection)是要走的路。但是,我很难让它发挥作用,而这正是我想要的。

例如:

String method ="punch";

int punch(){
return 1;
}

我想通过字符串名称调用该方法。有人能给我举个例子吗?

public class foo {
String method ="punch";

int punch() {
return 1;
}

public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Class<?> myClass = Class.forName("foo");
Method myMethod = myClass.getMethod("punch");
Object retObject = myMethod.invoke(null);
}
}

我需要做什么才能获得数字 1?

最佳答案

Object retObject = myMethod.invoke(null);

这只适用于静态方法。

对于实例方法,您需要传入要调用该方法的实例。

Object retObject = myMethod.invoke(instanceOfFoo);

此外,该方法可能需要是公共(public)(或者可以单独访问)。

关于java - 通过字符串调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24029618/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com