Java:有没有办法将文本转换为类?

标签 java reflection

我有输入:"ListClients param1 param2""" 拆分为 "ListClients", "param1", "param2";

我想从 ListClients 调用一个静态方法。

所以它会做 ListClients.someMethodThatTakesPraams(param1, param2);

有没有办法在 java 中做到这一点?

最佳答案

确实如此!您可以使用 Class.getDeclaredMethod 查找给定名称和参数类型的 Method 对象。例如,要找到您的 someMethodThatTakesParams 方法,您可以编写

Method m = ListClients.class.getDeclaredMethod("someMethodThatTakesParams", ArgType1.class, ArgType2.class);

这里,ArgType1ArgType2 是参数的类型。

获得方法后,您可以按如下方式调用它:

m.invoke(null, arg1, arg2);

其中arg1arg2是你要传递的参数。请注意,invoke 的第一个参数是 null,因为该方法是静态的。

这种方法省略了所有奇怪的事情,包括您必须捕获的异常和您可能必须获得的安全权限,但幸运的是,这些并不难掌握。

关于Java:有没有办法将文本转换为类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730009/

相关文章:

java - Swing 错误 ClassCastException

java - 如何通过java将参数传递给shell命令?

java - 是否有可能将 "method/field"文字与 Java/Scala 中的类文字相媲美?

c# - 为什么要在 C# 中引入 TargetInvocationException?

java - 如何使用xslt将父节点 namespace 复制到子元素?

java - 如何在android中从JSON获取百分比?

java - 使用 JAX-RS 创建 RESTful Web 服务并将其部署到 tomcat

Java:设置未知数量条目的数组长度

java - java中可以通过反射设置字段的 transient 属性/标志吗?

c# - 如何加载依赖程序集?