我试图通过反射调用这个方法,但我没有成功。
Method method = App.class.getDeclaredMethod("imp" + tipTransa,
Connection.class, // connection
String.class, // token
String.class, // tipTransa
String.class, // tipOpe
String.class, // msgGuid
List<Map<String,Object>>.getClass()); // this is the problem
method.setAccessible(true);
method.invoke(null, conn, token, tipTransa, tipOpe, msgGuid, data);
如何解决List<Map<String,Object>>.getClass()
问题?
答案 0 :(得分:2)
在运行时,任何其他类型的List<Map<String,Object>>
和List<Double>
或List
之间没有区别,因为通用类型信息已被删除。
您可以使用List.class
。
答案 1 :(得分:2)
使用原始类型:
List.class
即
Method method = App.class.getDeclaredMethod("imp" + tipTransa,
Connection.class, // connection
String.class, // token
String.class, // tipTransa
String.class, // tipOpe
String.class, // msgGuid
List.class);
答案 2 :(得分:2)
泛型不存在于运行时(或者更准确地说,它们在编译时是erased),因此不需要包含泛型类型的运行时文字。
而不是
List<Map<String,Object>>.getClass()
使用
List.class