public void test1(UpdateContractInfo updateContractInfo){
}
public void test(List<String> args){
}
private static void fa() {
List<String> dataStr = new ArrayList<>();
dataStr.add("abc");
ReflectionUtils.doWithLocalMethods(ContractService.class, method -> {
Parameter[] parameters = method.getParameters();
if (method.getName().equals("test")) {
if (parameters[0].getType().isAssignableFrom(List.class)) {
Type parameterizedType = parameters[0].getParameterizedType();
parameters[0].getParameterizedType();
Class aClass = ((ParameterizedType) parameters[0].getParameterizedType()).getActualTypeArguments()[0].getClass();
List<String> types = JSON.parseArray(JSON.toJSONString(dataStr), aClass);
System.out.println(types);
}
} else if (method.getName().equals("test1")) {
UpdateContractInfo updateContractInfo = new UpdateContractInfo();
updateContractInfo.setContractUrl("dddd");
Class<?> type = parameters[0].getType();
Object object = JSON.parseObject(JSON.toJSONString(updateContractInfo), type);
System.out.println(JSON.toJSONString(object));
}
});
}
针对public void test(List<String> args),getType返回一个Class对象,即List.class
获取参数化类型
获取参数化类型实际的参数值:得到的Type是class。
Class aClass =(Class) ((ParameterizedType) parameters[0].getParameterizedType()).getActualTypeArguments()[0];