import java.util.*;
import java.lang.reflect.*;
public class Test {
public final void foo (List<String> bar){
for(String x : bar)
System.out.println(x);
}
public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
Test x = new Test();
List<String> y = new ArrayList<String>(); y.add("asd"); y.add("bsd");
x.getClass().getMethod("foo",List.class).invoke(x,y);
}
}
Вы можете просто использовать getMethod("foo",List.class)
и использовать List.class
в качестве общей информации List<String>
используется только во время компиляции. Во время выполнения сигнатура метода будет выглядеть как
public final void foo (List bar)
как при стирании типа во время компиляции избавляется от общей информации.