沧州网站建设 益志科技,长春网站建设网,设计家装的软件,最新软件发布平台目录标题 背景MVEL脚本(有问题的)MVEL脚本(正确的)结论分析 背景
需要从一个URL的拼接参数中解析出id的值并输出 比如#xff1a; 存在URLhttps://xxxxxxxxxx?id999999type123name345 然后需要输出id999999 MVEL脚本(有问题的)
入参#xff1a;parseThisUrlhttp… 目录标题 背景MVEL脚本(有问题的)MVEL脚本(正确的)结论分析 背景
需要从一个URL的拼接参数中解析出id的值并输出 比如 存在URLhttps://xxxxxxxxxx?id999999type123name345 然后需要输出id999999 MVEL脚本(有问题的)
入参parseThisUrlhttps://xxxxxxxxxx?id999999type123name345
import java.net.URL;
import java.util.*;def parseQuery(query) {params new HashMap();if (query ! null) {String[] pairs query.split();for(pair : pairs) {String[] kvs pair.split();if(kvs.length 2){params.put(kvs[0], kvs[1]);}}}return params;
}// 解析URL
URL parsedUrl new URL(parseThisUrl);
// 获取查询字符串
String query parsedUrl.getQuery();
// 解析查询字符串
parameters parseQuery(query);
//获取goodId
goodId parameters.getOrDefault(id,0);return [ goodId : Long.valueOf(goodId) ];执行的时候就报错了具体错误信息如下
[Error: null pointer: parseQuery(query)]MVEL脚本(正确的)
入参parseThisUrlhttps://xxxxxxxxxx?id999999type123name345
import java.net.URL;
import java.util.*;def parseQuery(query) {params new HashMap();if (query ! null) {String[] pairs query.split();String[] kvs;for(pair : pairs) {kvs pair.split();if(kvs.length 2){params.put(kvs[0], kvs[1]);}}}return params;
}// 解析URL
URL parsedUrl new URL(parseThisUrl);
// 获取查询字符串
String query parsedUrl.getQuery();
// 解析查询字符串
parameters parseQuery(query);
//获取goodId
goodId parameters.getOrDefault(id,0);return [ goodId : Long.valueOf(goodId) ];很突然啊偷袭一下就成功了
结论分析
感觉是这个原因for循环里面是一个单独的闭包空间你里面使用的所有的变量都需要提前定义好不然的话这个闭包空间里面是没有这个变量定义的然后你的所有针对这个变量的操作就都会跑出空指针异常