写代码的过程中不要想当然,多思考可能出现的情况,比如下面这个例子
这是一个普通的拼接URL的函数
/**
* 跳转URL中拼接入口信息
*/
private String concatEntryUrl(WXEntryPo entry, String next, String gcfa) {
if (entry == null || entry.getEntryId() < 1) {
return next;
}
gcfa = gcfa == null ? "" : gcfa;
String tail = next.contains("?") ? "&" : "?";
return next + tail + "entryId=" + entry.getEntryId() + "&needLogin=" + entry.getNeedLogin() + "&shopId=" + entry.getShopId();
}
注意这里的String tail = next.contains("?") ? "&" : "?";
这句很有可能被忽略,一般人可能就很自然的想到return next + "?entryId=" + entry.getEntryId() + "&needLogin=" + entry.getNeedLogin() + "&shopId=" + entry.getShopId();以为这样拼接起来会没有问题,确实在测试的时候也不容易被发现。但是应该要考虑到如果next这个url里面后面本来就带有参数,拼接的url就会出现错误。
多注意细节,养成好习惯,可以有效提高编程效率。