修复多参数逗号分隔的问题

pull/75/MERGE
RuoYi 3 years ago
parent 3c7018b38a
commit eb5df8834b

@ -110,30 +110,30 @@ public class JobInvokeUtil
{ {
return null; return null;
} }
String[] methodParams = methodStr.split(",(?=(?:[^\']*\"[^\']*\')*[^\']*$)"); String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
List<Object[]> classs = new LinkedList<>(); List<Object[]> classs = new LinkedList<>();
for (int i = 0; i < methodParams.length; i++) for (int i = 0; i < methodParams.length; i++)
{ {
String str = StringUtils.trimToEmpty(methodParams[i]); String str = StringUtils.trimToEmpty(methodParams[i]);
// String字符串类型包含' // String字符串类型以'或"开头
if (StringUtils.contains(str, "'")) if (StringUtils.startsWithAny(str, "'", "\""))
{ {
classs.add(new Object[] { StringUtils.replace(str, "'", ""), String.class }); classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class });
} }
// boolean布尔类型等于true或者false // boolean布尔类型等于true或者false
else if (StringUtils.equals(str, "true") || StringUtils.equalsIgnoreCase(str, "false")) else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str))
{ {
classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); classs.add(new Object[] { Boolean.valueOf(str), Boolean.class });
} }
// long长整形包含L // long长整形以L结尾
else if (StringUtils.containsIgnoreCase(str, "L")) else if (StringUtils.endsWith(str, "L"))
{ {
classs.add(new Object[] { Long.valueOf(StringUtils.replaceIgnoreCase(str, "L", "")), Long.class }); classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class });
} }
// double浮点类型包含D // double浮点类型以D结尾
else if (StringUtils.containsIgnoreCase(str, "D")) else if (StringUtils.endsWith(str, "D"))
{ {
classs.add(new Object[] { Double.valueOf(StringUtils.replaceIgnoreCase(str, "D", "")), Double.class }); classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class });
} }
// 其他类型归类为整形 // 其他类型归类为整形
else else

Loading…
Cancel
Save