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 );
呼び出しに引数を渡す方法今のところ例外が生成されています理由はわかっていますが、どうすれば2つのintを渡すことができますか
add(イン、イント)
PS
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をinvokeに渡すか、より良い解決策があります。また、文字列を指定された型に変換するように汎用変換関数を作成できるかどうかも尋ねたいと思います