api類似
public <T> void do(T o){...}
有個pojo對象MyAction a作為參數(shù)通過反射傳給API執(zhí)行。但是無法獲取到這個do方法,獲取方法的代碼如下
class<?>[] types = {MyAction.class};
Method m = cls.getMethod("do", types);//這里報錯,獲取不到該方法
應(yīng)該怎么寫才能通過反射獲取到該do方法?
2 回答

呼喚遠方
TA貢獻1856條經(jīng)驗 獲得超11個贊
因為泛型擦除的緣故,編譯之后該方法就成了:
public void do (Object o) {...}
所以獲取的時候直接參數(shù)類型是使用 Object.class:
import java.lang.reflect.Method;
public class Test<T> {
public static void main(String[] args) throws Exception {
Class<?> clazz = Test.class;
Method method = clazz.getMethod("test", Object.class); // 參數(shù)類型為 Object.class
Test test = new Test();
String param = "Hello world";
method.invoke(test, param);
}
public <T> void test(T o) {
System.out.println(o);
}
}
添加回答
舉報
0/150
提交
取消