我正在基于传递给以下方法的主机名生成URL。
UserId
并且ClientId
会始终通过,但DataMap
有时会为空。这里的DataMap是String
和的String
。
NullPointerException
如果的keys.getDataMap()
为空,则抛出下面的代码。
private String generateURL(final String hostIPAdress) {
StringBuffer url = new StringBuffer();
url.append("http://" + hostIPAdress + ":8080/user?userid=" + keys.getUserId() + "&client_id="
+ keys.getClientId());
// this line throw NPE
Set<Entry<String, String>> params = keys.getDataMap().entrySet();
for (Entry<String, String> e : params) {
url.append("&" + e.getKey());
url.append("=" + e.getValue());
}
return url.toString();
}
如果只有,UserId
并且ClientId
被传递且DataMap
为空,那么我将创建如下网址-
hostname:8080/user?userid=1234567&client_id=20
但在上述情况下,由于映射为空,因此将抛出NPE。我该如何解决这个问题?
如果正在传递地图数据,那么我将使用以下网址:
hostname:8080/user?userid=1234567&client_id=20&attribute=testing
这attribute
是地图的键,并且testing
是该键的值。
只需检查您的地图是否为null
:
final Map dataMap = keys.getDataMap();
if (dataMap != null)
{
Set<Entry<String, String>> params = dataMap.entrySet();
// ...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句