Java 调用方法。调用(…)将列表作为参数传递
我试图通过反射调用此方法,但没有成功Java 调用方法。调用(…)将列表作为参数传递,java,reflection,Java,Reflection,我试图通过反射调用此方法,但没有成功 Method method = App.class.getDeclaredMethod("imp" + tipTransa, Connection.class, // connection String.class, // token
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.getClass问题?在运行时,列表与列表或任何其他类型的列表之间没有区别,因为泛型类型信息会被擦除
您可以只使用List.class。在运行时,列表与列表或任何其他类型的列表之间没有区别,因为泛型类型信息会被擦除 您可以通过使用原始类型使用List.class.:
List.class
即
通过使用原始类型:
List.class
即
泛型在运行时不存在,或者更确切地说,它们在编译时不存在,因此不需要运行时文本包含泛型类型 而不是
List<Map<String,Object>>.getClass()
泛型在运行时不存在,或者更确切地说,它们在编译时不存在,因此不需要运行时文本包含泛型类型 而不是
List<Map<String,Object>>.getClass()
这种问题已经被回答了好几次了。我希望我能把所有答案都标为正确答案。谢谢你们。Pshemo和Paul Boddington.@RodrigoGarcia既然所有张贴的答案都是正确的,请随意接受一个你最喜欢的答案:这种问题已经回答了好几次了。我希望我能把所有答案都标为正确答案。谢谢你们。Pshemo和Paul Boddington.@RodrigoGarcia因为所有张贴的答案都是正确的,所以请随意接受您最喜欢的答案: