我有多種方法的類,它接受不同PARAMS和類似foo
類在下面的例子中返回不同的類型: -最佳方式
class foo{
public void A(int a , int b){
// do somthing.
}
public String B(int a , String b){
// do somthing.
return "a";
}
public Object C(String a , String b){
// do somthing.
return null;
}
public int D(Long a , String b , String c){
// do somthing.
return 1;
}
}
public class bar {
public static void main(String[] args) {
try {
Class c = Class.forName("foo");
Object t = c.newInstance();
Method[] methods = c.getDeclaredMethods();
for(Method m : methods){
String methodName = m.getName();
if(methodName.equalsIgnoreCase("A")) {
// How to call method with its argument and return the result using reflection.
m.invoke(t,);
break;
}
}
}catch (InstantiationException e){
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
// Handle any exceptions thrown by method to be invoked.
e.printStackTrace();
}
}
}
現在我想創建一個實用程序方法,它接受方法名稱和參數,並使用反射調用相應的方法。讓我知道如何使用泛型實用方法傳遞不同的方法參數,並從反射代碼返回結果(它可能返回int,string,如示例中所示的對象)。
一般來說,這是不可信的。你不可能知道每個類的每個參數的期望值是什麼數據值。 – EJP
@EJP是否有可能,如果我將hashmap傳遞給方法,其中key方法名稱和值是params列表,然後使用反射我可以檢查方法名稱並從地圖獲取參數列表,然後調用方法? –