Java getMethod 在方法中使用超类参数
2022-09-03 01:17:20
鉴于:
class A
{
public void m(List l) { ... }
}
假设我想调用带有反射的方法,将ArrayList作为参数传递给:m
m
List myList = new ArrayList();
A a = new A();
Method method = A.class.getMethod("m", new Class[] { myList.getClass() });
method.invoke(a, Object[] { myList });
第 3 行将引发,因为 myList 的运行时类型是 ArrayList,而不是 List。getMethod
NoSuchMethodException
有没有一种很好的通用方法可以解决这个问题,不需要了解类A的参数类型?