String className = "com.endpoints.EndPointImpl";
String methodName = "add";
String args = "2,3";
try {
Class<?> clas = Class.forName(className);
Object obj = Class.forName(className).newInstance();
java.lang.reflect.Method method = null;
//Type[] types;
for(java.lang.reflect.Method m :obj.getClass().getMethods())
{
if(m.getName().equals(methodName))
{
method = m;
//types = m.getParameterTypes();
break;
}
}
//java.lang.reflect.Method method = clas.getDeclaredMethod(methodName,t);
Object[] strarr = args.split(",");
Object retobj = method.invoke(obj,strarr );
我如何传递参数来调用到目前为止它正在生成异常我知道为什么但是我怎么能传递两个 int
添加(输入,整数)
附言
ArrayList<Object> objArr = new ArrayList<Object>();
for(java.lang.reflect.Method m :obj.getClass().getMethods())
{
if(m.getName().equals(methodName))
{
method = m;
int index = 0;
for(Type type :m.getGenericParameterTypes())
{
if(type.getClass().equals("Integer"))
{
objArr.add(Integer.parseInt(strarr[index]));
}
else if(type.getClass().equals("Float"))
{
objArr.add(Float.parseFloat(strarr[index]));
}
index++;
}
然后在调用中传递 objArr 或者有更好的解决方案,我还想问是否可以创建一个通用的转换函数,以便它将字符串转换为指定的类型