我想在 java 中通过反射调用一个方法。
我手头有 Method我要调用的方法的实例(因此我可以获得其参数的类型),此外,我将这些参数的值作为字符串。
我假设所有参数都必须是原语。
例如,如果我想调用以下方法:
public static double calc(int a, double b, String op){...}
我将参数作为字符串数组:
String[]: {"25", "34.45", "add"}
那么,如何将这个 String 数组转换为包含 (int, double, string) 的数组? 我知道我可以遍历所有原始类型并尝试解析每种类型的值......有更简单的方法吗?类似于“通用解析”方法。
最佳答案
您不应该遍历所有原始类型并尝试解析每种类型中的值。
您应该从 Method
实例中获取每个参数的类型,并根据参数的类型调用适当的方法将 String 转换为所需的类型:Double。 double (
,int (Double.TYPE
) 的 valueOf()Integer.TYPE
) 的 Integer.valueOf()
等
关于Java:将字符串动态转换为原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720146/