作者 RuoYi

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

@@ -65,7 +65,7 @@ public class JobInvokeUtil @@ -65,7 +65,7 @@ public class JobInvokeUtil
65 /** 65 /**
66 * 校验是否为为class包名 66 * 校验是否为为class包名
67 * 67 *
68 - * @param str 名称 68 + * @param invokeTarget 名称
69 * @return true是 false否 69 * @return true是 false否
70 */ 70 */
71 public static boolean isValidClassName(String invokeTarget) 71 public static boolean isValidClassName(String invokeTarget)
@@ -110,30 +110,30 @@ public class JobInvokeUtil @@ -110,30 +110,30 @@ public class JobInvokeUtil
110 { 110 {
111 return null; 111 return null;
112 } 112 }
113 - String[] methodParams = methodStr.split(",(?=(?:[^\']*\"[^\']*\')*[^\']*$)"); 113 + String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
114 List<Object[]> classs = new LinkedList<>(); 114 List<Object[]> classs = new LinkedList<>();
115 for (int i = 0; i < methodParams.length; i++) 115 for (int i = 0; i < methodParams.length; i++)
116 { 116 {
117 String str = StringUtils.trimToEmpty(methodParams[i]); 117 String str = StringUtils.trimToEmpty(methodParams[i]);
118 - // String字符串类型,包含'  
119 - if (StringUtils.contains(str, "'")) 118 + // String字符串类型,以'或"开头
  119 + if (StringUtils.startsWithAny(str, "'", "\""))
120 { 120 {
121 - classs.add(new Object[] { StringUtils.replace(str, "'", ""), String.class }); 121 + classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class });
122 } 122 }
123 // boolean布尔类型,等于true或者false 123 // boolean布尔类型,等于true或者false
124 - else if (StringUtils.equals(str, "true") || StringUtils.equalsIgnoreCase(str, "false")) 124 + else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str))
125 { 125 {
126 classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); 126 classs.add(new Object[] { Boolean.valueOf(str), Boolean.class });
127 } 127 }
128 - // long长整形,包含L  
129 - else if (StringUtils.containsIgnoreCase(str, "L")) 128 + // long长整形,以L结尾
  129 + else if (StringUtils.endsWith(str, "L"))
130 { 130 {
131 - classs.add(new Object[] { Long.valueOf(StringUtils.replaceIgnoreCase(str, "L", "")), Long.class }); 131 + classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class });
132 } 132 }
133 - // double浮点类型,包含D  
134 - else if (StringUtils.containsIgnoreCase(str, "D")) 133 + // double浮点类型,以D结尾
  134 + else if (StringUtils.endsWith(str, "D"))
135 { 135 {
136 - classs.add(new Object[] { Double.valueOf(StringUtils.replaceIgnoreCase(str, "D", "")), Double.class }); 136 + classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class });
137 } 137 }
138 // 其他类型归类为整形 138 // 其他类型归类为整形
139 else 139 else